commit bc7c109b0ca1eb618b9e2e3aa9dbd3362123eb37 Author: Markus Birth Date: Fri Nov 30 12:14:44 2001 +0100 Initial commit diff --git a/1046RTL.BAK b/1046RTL.BAK new file mode 100644 index 0000000..4a949c3 --- /dev/null +++ b/1046RTL.BAK @@ -0,0 +1,199 @@ +program RTL; + +uses Crt, VFx; + +var d: array[0..9999] of boolean; +var cd,cn: integer; + +function Form(i: integer): string; +var t: string; +begin + Str(i,t); + while (Length(t)<4) do t := '0'+t; + Form := t; +end; + +procedure SetDone; +var f: text; + x: string; + t,ec: integer; +begin + for t:=0 to 9999 do d[t] := false; + assign(f,'1046rtl.txt'); + reset(f); + ReadLn(f,x); + WriteLn(x); + while Not Eof(f) do begin + ReadLn(f,x); + Val(x,t,ec); + if NOT d[t] then d[t] := true else Alert(Form(t)+' doppelt getippt!'); + end; + close(f); + WriteLn('Datenbank mit Tipps geladen und verarbeitet.'); +end; + +procedure DoStats; +var i: integer; +begin + cd := 0; + cn := 0; + for i:=0 to 9999 do begin + if d[i] then Inc(cd) else Inc(cn); + end; +end; + +procedure ShowStats; +var mon: real; +begin + mon := cd; + mon := mon*500; + WriteLn('Getippt: ',cd:5,' = ',cd/100:6:2,'% = ',mon:10:2,' DM in ',cd DIV 10:3,' Tagen bei 5.000,- DM pro Tag'); + mon := cn; + mon := mon*500; + WriteLn('brig : ',cn:5,' = ',cn/100:6:2,'% = ',mon:10:2,' DM in ',cn DIV 10:3,' Tagen'); + WriteLn('Gesamt : ',cd+cn:5); +end; + +procedure ShowNotDone; +var i: integer; +begin + for i:=0 to 9999 do begin + if not d[i] then Write(Form(i),' '); + end; +end; + +function Ten(i,e: integer): longint; +var x: integer; + t: longint; +begin + if (e>0) then begin + for x:=1 to e do i := i * 10; + end; + Ten := i; +end; + +procedure WriteNum(x: integer); +begin + GotoXY(16,12); + Write(x DIV 1000); + GotoXY(18,12); + Write((x MOD 1000) DIV 100); + GotoXY(20,12); + Write((x MOD 100) DIV 10); + GotoXY(22,12); + Write(x MOD 10); +end; + +procedure WriteNumFX(x: integer); +begin + GotoXY(16,12); + FXWriteC(Num2Str(x DIV 1000)+' '+Num2Str((x MOD 1000) DIV 100)+' '+Num2Str((x MOD 100) DIV 10)+' '+Num2Str(x MOD 10),15); +end; + +procedure GetRandomNumber; +var i,x: integer; +begin + i := 0; + Randomize; + repeat + repeat + x := Random(10000); + until NOT d[x]; + WriteNum(x); + Sound(1950); + Delay(25); + NoSound; + Delay(i); + i := i + 1 + (i DIV 5); + until (i>=750); + WriteNumFX(x); + CursorOff; +end; + +procedure DoAsking; +var k: char; + kc: byte; + c: byte; + co: integer; + i: integer; +begin + DrawBorder2(20,5,60,20,11,1); + Window(21,6,59,19); + GotoXY(1,2); + FXWriteC('* * * 104.6 RTL * * *',14); WriteLn; + FXWriteC('* EURO - MILLIONAER *',15); WriteLn; + FXWriteC('* * * * * * * * * * *',14); WriteLn; + TextColor(11); + WriteLn; + WriteFlt(' Knacken Sie den vierstelligen'); + WriteFlt(' Zahlencode und gewinnen Sie '); + WriteLn; + TextColor(12); + WriteImp(' EINE MILLION EURO'); + TextColor(11); + GotoXY(1,14); FXWriteC('Beenden mit ESC',7); + GotoXY(1,12); FXWriteC('_ _ _ _',7); + CursorOff; + WaitBeep; + c := 0; + co := 0; + repeat + k := ReadKey; + if k<>#27 then begin + if k IN [#48..#57] then begin + if (c=0) then begin + GotoXY(18,12); TextColor(7); Write('_ _ _'); + end; + GotoXY(16+2*c,12); FXChar(k,15); CursorOff; + Inc(c); + kc := Ord(k)-48; + co := co + Ten(kc,4-c); + AckBeep; + end; + if (k=#8) AND (c>0) then begin + Dec(c); + GotoXY(16+2*c,12); FXChar('_',7); CursorOff; + co := (co DIV Ten(1,4-c)) * Ten(1,4-c); + ErrorBeep; + end; + if (k='r') OR (k='R') then begin + TextColor(8); + GotoXY(10,13); + Write(Space(20)); + GetRandomNumber; + WaitBeep; + end; + end; + if (c=4) then begin + GotoXY(10,13); + if d[co] then begin + TextColor(12); + ErrorBeep; + WriteFlt('*** CODE FALSCH ***'); + end else begin + TextColor(10); + ReadyBeep; + WriteFlt('*** PRUEFE CODE ***'); + end; + co := 0; + c := 0; + CursorOff; + end; + until k=#27; + Window(1,1,80,25); + CursorOn; +end; + +begin + SaveScreen; + TextMode(co80); + TextColor(7); + TextBackground(0); + ClrScr; + SetDone; + DoStats; + { ShowNotDone; } + ShowStats; + DoAsking; + RestoreScreen; +end. diff --git a/1046RTL.PAS b/1046RTL.PAS new file mode 100644 index 0000000..ee79bac --- /dev/null +++ b/1046RTL.PAS @@ -0,0 +1,202 @@ +program RTL; + +uses Crt, VFx; + +var d: array[0..9999] of boolean; +var cd,cn: integer; + +function Form(i: integer): string; +var t: string; +begin + Str(i,t); + while (Length(t)<4) do t := '0'+t; + Form := t; +end; + +procedure SetDone; +var f: text; + x: string; + t,ec: integer; + msg: string; +begin + for t:=0 to 9999 do d[t] := false; + assign(f,'1046rtl.txt'); + reset(f); + ReadLn(f,x); + WriteLn(x); + msg := ''; + while Not Eof(f) do begin + ReadLn(f,x); + Val(x,t,ec); + if NOT d[t] then d[t] := true else msg := msg + Form(t)+' doppelt getippt!'+crlf; + end; + close(f); + Alert(msg); + WriteLn('Datenbank mit Tipps geladen und verarbeitet.'); +end; + +procedure DoStats; +var i: integer; +begin + cd := 0; + cn := 0; + for i:=0 to 9999 do begin + if d[i] then Inc(cd) else Inc(cn); + end; +end; + +procedure ShowStats; +var mon: real; +begin + mon := cd; + mon := mon*500; + WriteLn('Getippt: ',cd:5,' = ',cd/100:6:2,'% = ',mon:10:2,' DM in ',cd DIV 10:3,' Tagen bei 5.000,- DM pro Tag'); + mon := cn; + mon := mon*500; + WriteLn('brig : ',cn:5,' = ',cn/100:6:2,'% = ',mon:10:2,' DM in ',cn DIV 10:3,' Tagen'); + WriteLn('Gesamt : ',cd+cn:5); +end; + +procedure ShowNotDone; +var i: integer; +begin + for i:=0 to 9999 do begin + if not d[i] then Write(Form(i),' '); + end; +end; + +function Ten(i,e: integer): longint; +var x: integer; + t: longint; +begin + if (e>0) then begin + for x:=1 to e do i := i * 10; + end; + Ten := i; +end; + +procedure WriteNum(x: integer); +begin + GotoXY(16,12); + Write(x DIV 1000); + GotoXY(18,12); + Write((x MOD 1000) DIV 100); + GotoXY(20,12); + Write((x MOD 100) DIV 10); + GotoXY(22,12); + Write(x MOD 10); +end; + +procedure WriteNumFX(x: integer); +begin + GotoXY(16,12); + FXWriteC(Num2Str(x DIV 1000)+' '+Num2Str((x MOD 1000) DIV 100)+' '+Num2Str((x MOD 100) DIV 10)+' '+Num2Str(x MOD 10),15); +end; + +procedure GetRandomNumber; +var i,x: integer; +begin + i := 0; + Randomize; + repeat + repeat + x := Random(10000); + until NOT d[x]; + WriteNum(x); + Sound(1950); + Delay(25); + NoSound; + Delay(i); + i := i + 1 + (i DIV 5); + until (i>=750); + WriteNumFX(x); + CursorOff; +end; + +procedure DoAsking; +var k: char; + kc: byte; + c: byte; + co: integer; + i: integer; +begin + DrawBorder2(20,5,60,20,11,1); + Window(21,6,59,19); + GotoXY(1,2); + FXWriteC('* * * 104.6 RTL * * *',14); WriteLn; + FXWriteC('* EURO - MILLIONAER *',15); WriteLn; + FXWriteC('* * * * * * * * * * *',14); WriteLn; + TextColor(11); + WriteLn; + WriteFlt(' Knacken Sie den vierstelligen'); + WriteFlt(' Zahlencode und gewinnen Sie '); + WriteLn; + TextColor(12); + WriteImp(' EINE MILLION EURO'); + TextColor(11); + GotoXY(1,14); FXWriteC('Beenden mit ESC',7); + GotoXY(1,12); FXWriteC('_ _ _ _',7); + CursorOff; + WaitBeep; + c := 0; + co := 0; + repeat + k := ReadKey; + if k<>#27 then begin + if k IN [#48..#57] then begin + if (c=0) then begin + GotoXY(18,12); TextColor(7); Write('_ _ _'); + end; + GotoXY(16+2*c,12); FXChar(k,15); CursorOff; + Inc(c); + kc := Ord(k)-48; + co := co + Ten(kc,4-c); + AckBeep; + end; + if (k=#8) AND (c>0) then begin + Dec(c); + GotoXY(16+2*c,12); FXChar('_',7); CursorOff; + co := (co DIV Ten(1,4-c)) * Ten(1,4-c); + ErrorBeep; + end; + if (k='r') OR (k='R') then begin + TextColor(8); + GotoXY(10,13); + Write(Space(20)); + GetRandomNumber; + WaitBeep; + end; + end; + if (c=4) then begin + GotoXY(10,13); + if d[co] then begin + TextColor(12); + ErrorBeep; + WriteFlt('*** CODE FALSCH ***'); + end else begin + TextColor(10); + ReadyBeep; + WriteFlt('*** PRUEFE CODE ***'); + end; + co := 0; + c := 0; + CursorOff; + end; + until k=#27; + Window(1,1,80,25); + CursorOn; +end; + +begin + SaveScreen; + TextMode(co80); + TextColor(7); + TextBackground(0); + ClrScr; + SetDone; + DoStats; + { ShowNotDone; } + ShowStats; + DoAsking; + RestoreScreen; +end. diff --git a/1046RTL.txt b/1046RTL.txt new file mode 100644 index 0000000..8fa0daf --- /dev/null +++ b/1046RTL.txt @@ -0,0 +1,291 @@ +Letzter Eintrag: vom 29.11.2001 +1034 +3115 +4054 +3003 +1001 +1212 +1156 +9763 +2541 +6349 +8888 +2487 +1172 +5281 +7971 +7049 +5971 +4879 +3653 +8431 +1410 +6971 +1726 +8880 +8221 +9724 +0675 +3185 +3112 +8183 +3874 +4444 +8221 +1305 +7334 +7281 +3823 +2766 +3331 +7559 +7426 +0001 +1768 +0785 +3110 +2408 +8222 +5183 +2018 +6454 +9456 +1545 +1891 +2003 +1163 +7628 +7992 +0251 +2909 +1791 +2811 +4678 +9816 +2648 +0715 +7862 +0929 +1188 +8271 +2305 +8375 +3112 +9093 +8273 +5169 +3645 +8882 +5944 +1222 +4715 +2051 +5444 +5939 +9569 +7342 +2306 +5891 +3624 +5348 +6413 +0000 +7370 +0501 +1109 +0220 +2501 +5185 +1291 +6881 +2609 +1070 +8598 +5869 +2808 +1037 +2743 +0815 +2288 +3830 +7575 +0311 +2509 +2304 +6437 +7166 +1403 +7539 +1328 +1967 +1997 +0803 +4711 +6543 +8230 +3921 +3748 +7777 +4802 +4635 +3951 +0046 +1109 +1276 +2012 +0057 +1492 +4113 +7788 +0612 +7780 +1427 +9008 +9146 +9969 +2481 +1744 +0312 +4967 +2708 +6843 +3879 +1955 +1605 +3904 +1958 +1909 +0508 +0805 +2534 +9867 +2001 +1308 +1948 +6501 +6075 +1550 +1245 +4268 +1920 +1415 +1973 +1510 +2159 +2308 +2146 +2899 +4417 +7851 +6899 +7812 +5841 +2516 +4210 +9232 +2728 +2762 +1956 +0714 +8123 +8245 +1102 +3976 +1376 +1993 +6323 +5398 +1504 +1876 +4378 +1110 +1049 +3430 +8016 +0705 +0616 +0205 +0185 +4805 +2405 +1712 +9823 +9876 +0612 +1956 +0610 +1057 +8192 +2955 +1904 +5620 +1302 +2607 +4521 +0215 +8020 +1234 +1612 +1991 +2256 +1975 +1968 +5396 +2311 +1702 +7236 +4793 +7927 +2112 +9748 +2105 +4100 +7681 +1822 +1460 +6965 +1312 +6401 +1995 +2211 +7821 +8413 +6593 +3008 +0911 +1307 +9328 +2002 +2008 +8187 +8174 +1046 +8316 +0308 +9991 +0190 +1207 +5962 +2412 +5137 +2805 +1354 +5216 +4669 +8802 +1709 +2210 +8848 +8755 +4012 +4386 +7381 +3648 +0909 +2406 +3876 +8467 +7295 +0101 +4848 +5625 diff --git a/971211.PAS b/971211.PAS new file mode 100644 index 0000000..052ab0e --- /dev/null +++ b/971211.PAS @@ -0,0 +1,83 @@ +program Zeitvertreib111297; + +uses Crt; + +var Warschon: array[1..80, 1..50] of boolean; + Randx: integer; + Randy: integer; + loc: integer; + +label Hier; + +const Chars: string = ' '; {';} + xmax = 80; + ymax = 49; + del = 0; + +procedure Init; +var i,j: integer; +begin + TextBackground(black); + Randomize; + for i:=1 to xmax do begin + for j:=1 to ymax do begin + Warschon[i,j] := False; + end; + end; + loc := Length(Chars); +end; + +procedure GetRandomNumbers; +label Hier2; +begin +Hier2: + Randx := Random(xmax) + 1; + Randy := Random(ymax) + 1; + if Warschon[randx,randy] then goto Hier2; +end; + +function GetRandomChar: string; +var rand: integer; +begin + rand := Random(loc) + 1; + GetRandomChar := Chars[rand]; +end; + +function Check: boolean; +var i,j: integer; +begin + Check := False; + for i:=1 to xmax do begin + for j:=1 to ymax do begin + if Warschon[i,j]=False then begin + Check:=True; + Exit; + end; + end; + end; +end; + +procedure WritePix(x,y: integer); +begin + GotoXY(x,y); + TextColor(Random(16)); + TextBackground(Random(16)); + Write(GetRandomChar); + Warschon[x,y] := true; +end; + +begin + TextMode(CO80 + Font8x8); + ClrScr; + Init; +Hier: + GetRandomNumbers; + WritePix(randx,randy); + Delay(del); + if keypressed then exit; + if Check then goto Hier; + Init; + goto Hier; + GotoXY(1,1); + ReadKey; +end. \ No newline at end of file diff --git a/990914.PAS b/990914.PAS new file mode 100644 index 0000000..aee1512 --- /dev/null +++ b/990914.PAS @@ -0,0 +1,103 @@ +uses Crt; + +const input='test.bmp'; { 80x49x16 Bitmap } + +var Data: array[1..80,1..98] of byte; + Orig: array[0..4096] of byte; + pos: integer; + first4: boolean; + +function GetNext: byte; +begin + if (first4) then begin + GetNext := Orig[pos] DIV 16; + first4 := false; + end else begin + GetNext := Orig[pos] MOD 16; + first4 := true; + Inc(pos); + end; +end; + +procedure LoadFile; +const Datadelta=118; +var f: File; + result: word; + i,j: integer; +begin + Assign(f, input); + Reset(f); + BlockRead(f, Orig, FileSize(f), result); + if (result<>FileSize(f)) then begin + TextColor(12); + WriteLn('FEHLER!'); + TextColor(15); + WriteLn('Es wurden nur ',result,' Bytes von ',FileSize(f),' gelesen.'); + ReadKey; + end; + if (Orig[18]<>80) OR (Orig[22]<>98) then begin + TextColor(12); + WriteLn('FEHLER!'); + TextColor(15); + WriteLn('Die zu ladende BMP-Datei ist nicht im Format 80x98!'); + WriteLn(input,': ',Orig[18],'x',Orig[22]); + Halt; + end; + first4 := true; + pos := Datadelta; + for i:=98 downto 1 do + for j:=1 to 80 do + Data[j,i] := GetNext; +end; + +function BMP2CRT(x: byte): byte; +begin + case x of + 0: BMP2CRT:=0; + 1: BMP2CRT:=4; + 2: BMP2CRT:=2; + 3: BMP2CRT:=6; + 4: BMP2CRT:=1; + 5: BMP2CRT:=5; + 6: BMP2CRT:=3; + 7: BMP2CRT:=8; + 8: BMP2CRT:=7; + 9: BMP2CRT:=12; + 10: BMP2CRT:=10; + 11: BMP2CRT:=14; + 12: BMP2CRT:=9; + 13: BMP2CRT:=13; + 14: BMP2CRT:=11; + 15: BMP2CRT:=15; + else + BMP2CRT:=x; + end; +end; + +procedure ShowFile; +var i,j: integer; + c1,c2: byte; +begin + for i:=1 to 49 do + for j:=1 to 80 do begin + GotoXY(j,i); + c1 := Data[j,i*2-1]; + c2 := Data[j,i*2]; + { if (c1>7) then c1 := c1-8; + if (c2>7) then c2 := c2-8; } + TextColor(BMP2CRT(c1)); + TextBackground(BMP2CRT(c2)); + Write(''); + end; +end; + +begin + TextMode(co80 + Font8x8); + TextColor(15); + TextBackground(0); + ClrScr; + LoadFile; + ShowFile; + + +end. \ No newline at end of file diff --git a/990915.PAS b/990915.PAS new file mode 100644 index 0000000..2da0e2e --- /dev/null +++ b/990915.PAS @@ -0,0 +1,114 @@ +uses Graph, Crt, BGIP; + +const input='face.bmp'; { Bitmap x*y*16 } + firstblock=118; + blocksize=4095; + +var Orig: array[0..blocksize] of byte; + pos: integer; + first4: boolean; + wi,he: longint; + f: file; + result: word; + xmax,ymax: integer; + +procedure OpenFile; +begin + Assign(f,input); + Reset(f,1); + BlockRead(f,Orig,SizeOf(Orig),result); + if (result<>SizeOf(Orig)) AND (result<>FileSize(f) MOD blocksize) then begin + TextColor(12); + WriteLn('FEHLER!!'); + TextColor(15); + WriteLn('Es wurden nur ',result,' Bytes gelesen, statt ',SizeOf(Orig),'.'); + Halt; + end; + wi := Orig[19]*256 + Orig[18]; + he := Orig[23]*256 + Orig[22]; + WriteLn('Image size: ',wi,'x',he,' (',(wi*he) DIV 2,' Bytes image data)'); + WriteLn(FileSize(f),' Bytes filesize'); + ReadKey; + pos := firstblock; + first4 := true; +end; + +procedure GraphInit; +var grDriver, grMode : integer; +begin + grDriver := VGA; + { VGAlo 640x200x16 + VGAmed 640x350x16 + VGAhi 640x480x16 } + grMode := VGAhi; + InitGraph(grDriver,grMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } +end; + +function BMP2CRT(x: byte): byte; +begin + case x of + 0: BMP2CRT:=0; + 1: BMP2CRT:=4; + 2: BMP2CRT:=2; + 3: BMP2CRT:=6; + 4: BMP2CRT:=1; + 5: BMP2CRT:=5; + 6: BMP2CRT:=3; + 7: BMP2CRT:=8; + 8: BMP2CRT:=7; + 9: BMP2CRT:=12; + 10: BMP2CRT:=10; + 11: BMP2CRT:=14; + 12: BMP2CRT:=9; + 13: BMP2CRT:=13; + 14: BMP2CRT:=11; + 15: BMP2CRT:=15; + else + BMP2CRT:=x; + end; +end; + +function GetNextPixCol: byte; +begin + if (first4) then begin + GetNextPixCol := Orig[pos] DIV 16; + first4 := false; + end else begin + GetNextPixCol := Orig[pos] MOD 16; + first4 := true; + Inc(pos); + end; + if (pos>blocksize) then begin + BlockRead(f,Orig,SizeOf(Orig),result); + if (result<>SizeOf(Orig)) AND (result<>FileSize(f) MOD (blocksize+1)) AND (result<>0) then begin + CloseGraph; + TextMode(co80); + TextColor(12); + WriteLn('FEHLER!!'); + TextColor(15); + WriteLn('Es wurden nur ',result,' Bytes gelesen, statt ',SizeOf(Orig),'.'); + Halt; + end; + pos := 0; + end; +end; + +procedure ShowGraph; +var i,j: integer; +begin + for j:=he downto 1 do + for i:=1 to wi+6 do begin +{ WriteLn(i,'x',j,'- ',GetNextPixCol); } + PutPixel(i,j,BMP2CRT(GetNextPixCol)); + end; +end; + +begin + OpenFile; + Graphinit; + ShowGraph; + ReadKey; + +end. diff --git a/991011.PAS b/991011.PAS new file mode 100644 index 0000000..e1d1900 --- /dev/null +++ b/991011.PAS @@ -0,0 +1,61 @@ +program JumpDot; + +uses Crt, Graph, BGIP, DOS; + +const grav=9.80665; + fac=15; + +var xmax,ymax: word; + xmed,ymed: word; + dx, dy: word; + i: integer; + down: boolean; + di: word; + h,m,s,ss: word; + sts, sss: longint; + +procedure Init; +var grDriver, grMode : integer; +begin + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver,grMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; +end; + +begin + Init; + dx := 0; dy := 10; + down := true; + { GetTime(h,m,s,ss); + sts := h*60*60*100 + m*60*100 + s*100 + ss; } + di := 0; + for i:=0 to xmax do begin + { GetTime(h,m,s,ss); + sss := (h*60*60*100 + m*60*100 + s*100 + ss)-(sts); } + dx := i; + { dy := Round((9.80665)*Sqr(sss/100)); } + if (down) then dy := Round((grav/2)*Sqr((i-di)/fac)) else dy := Round((grav/2)*Sqr((di-(i-di))/fac)); + if (dy>ymax) then begin + down:=false; + dy:=ymax-1; + di:=i-di; + end; + if (dy<=0) AND (di 3.2 then Write('Dieser Mensch ist schon so gut wie tot!'); + if Promille > 5 then WriteLn(' --- Berichtigung: Er IST tot! ---') else WriteLn; + Abbauzeit := Promille/0.15; + WriteLn('Abbauzeit in h : ',Abbauzeit:3:4); + AZh := Int(Abbauzeit); + AZm := (Abbauzeit-Int(Abbauzeit))*60; + AZs := (AZm-Int(AZm))*60; + WriteLn('Abbauzeit : ',AZh:2:0,'h ',AZm:2:0,'m ',AZs:2:0,'s'); + WriteLn; + WriteLn('Bitte eine Taste drcken...'); + repeat until Keypressed; +end. \ No newline at end of file diff --git a/BASICSTR.PAS b/BASICSTR.PAS new file mode 100644 index 0000000..6dd6bee --- /dev/null +++ b/BASICSTR.PAS @@ -0,0 +1,26 @@ +unit BasicStrings; + +interface + function Mid(Txt: string; Index: integer; Count: integer): string; + function Left(Txt: string; Count: integer): string; + function Right(Txt: string; Count: integer): string; + +implementation + function Mid(Txt: string; Index: integer; Count: integer): string; + begin + Mid := Copy(Txt, Index, Count); + end; + + function Left(Txt: string; Count: integer): string; + begin + Left := Copy(Txt, 1, Count); + end; + + function Right(Txt: string; Count: integer): string; + begin + Right := Copy(Txt, Length(Txt)-Count+1, Length(Txt)-(Length(Txt)-Count)); + end; + +begin + WriteLn(' Loading Unit: BasicStrings - geschrieben von RoboCop IND.'); +end. diff --git a/BASICTST.PAS b/BASICTST.PAS new file mode 100644 index 0000000..53223ea --- /dev/null +++ b/BASICTST.PAS @@ -0,0 +1,13 @@ +program TestBasicStrings; + +uses BasicStrings, Crt; + +var Txt: string; + +begin + Txt := 'Dies ist ein Test-String'; + WriteLn('Urstring: '+Txt); + WriteLn('8 Linke Zeichen: '+Left(Txt, 8)); + WriteLn('7 Zeichen ab 6. Position: '+Mid(Txt, 6, 7)); + WriteLn('6 Rechte Zeichen: '+Right(Txt , 6)); +end. \ No newline at end of file diff --git a/BGIPATH.PAS b/BGIPATH.PAS new file mode 100644 index 0000000..0ae9eab --- /dev/null +++ b/BGIPATH.PAS @@ -0,0 +1 @@ +BGIPath = 'C:\SCHULS~1\TP\BGI'; diff --git a/BLINK.PAS b/BLINK.PAS new file mode 100644 index 0000000..c2947bc --- /dev/null +++ b/BLINK.PAS @@ -0,0 +1,42 @@ +program blink; + +uses Crt,CursorOnOff; + +const xlen=20; + ylen=10; + +var x1,x2,y1,y2: byte; + +procedure FillCol(col: byte); +var i,j: byte; +begin + TextColor(col); + GotoXY(1,1); + for i:=y1 to y2 do begin + for j:=x1 to x2 do begin + Write(''); + end; + end; + delay(50); +end; + +begin + ClrScr; + x1 := 40-xlen div 2; + x2 := 40+xlen div 2; + y1 := 12-ylen div 2; + y2 := 12+ylen div 2; + + window(x1,y1,x2,y2); + CursorOff; + repeat + FillCol(0); + FillCol(8); + FillCol(7); + FillCol(15); + FillCol(7); + FillCol(8); + until keypressed; + CursorOn; + ReadKey; +end. \ No newline at end of file diff --git a/BLUES.PAS b/BLUES.PAS new file mode 100644 index 0000000..5e25e69 --- /dev/null +++ b/BLUES.PAS @@ -0,0 +1,167 @@ +program BlueS; + +uses Crt; + +const FILEZ:array[0..27] of string=('atapi.sys','Disk.sys','Ntfs.sys','Cdrom.SYS','Null.SYS','Beep.SYS', + 'i8042prt.sys','kbdclass.sys','s3mini.sys','Msfs.SYS','NDIS.SYS', + 's3trio3d.dll','FSFILTER.SYS','FSAVP.SYS','nbf.sys','Floppy.SYS', + 'CLASS2.SYS','SCSIPORT.SYS','win32k.sys','Cdfs.SYS','Fastfat.SYS', + 'hcioPort.SYS','ParVdm.SYS','Parport.SYS','afd.sys','netbt.sys', + 'nwlnkb.sys','###'); + +var FILEZc: integer; + exitnow: boolean; + oldhex: string; + +procedure Init; +var i: integer; +begin + exitnow := false; + i := 0; + repeat + Inc(i); + until (FILEZ[i]='###'); + FILEZc := i; + Randomize; + TextMode(co80 + Font8x8); + TextColor(7); + TextBackground(1); + ClrScr; +end; + +procedure Outit; +begin + GotoXY(1,1); + if NOT (exitnow) then ReadKey; +end; + +procedure RandHex(x,y: integer; pre, cap, lowonly, old: boolean); +const HexSet:string='0123456789abcdef'; +var i,mx: integer; +begin + GotoXY(x,y); + if (pre) then Write('0x'); + if (lowonly) then begin + Write('0000'); + mx := 4; + end else mx := 8; + if (NOT old) then begin + oldhex := ''; + for i:=1 to mx do oldhex := oldhex + HexSet[Random(16)+1]; + end; + if (cap) then for i:=1 to Length(oldhex) do Write(UpCase(oldhex[i])) else Write(oldhex); +end; + +procedure RandFile(x,y: integer); +begin + GotoXY(x,y); + Write(FILEZ[Random(FILEZc)]); +end; + +procedure Mask; +var i: integer; +begin + GotoXY(1,6); + Write('CPUID:'); + i := Random(3)+1; + case i of + 1: Write('AuthenticAMD'); + 2: Write('IntelInside'); + 3: Write('CyrixInstead'); + end; + Write(' 5.8.c irql:1f '); + i := Random(2); + if (i=1) then Write('DPC '); + Write('SYSVER 0xoooooooo'); + RandHex(WhereX-10,6,true,false,false,false); + GotoXY(1,8); + Write('Dll Base DateStmp - Name Dll Base DateStmp - Name'); + GotoXY(1,35); + Write('Address dword dump Build [1381] - Name'); +end; + +procedure FillOutError; +begin + begin + GotoXY(1,2); + WriteLn('*** STOP: 0xoooooooo (0xoooooooo, 0xoooooooo, 0xoooooooo, 0xoooooooo)'); + WriteLn('IRQL_NOT_LESS_OR_EQUAL*** Address oooooooo has base at oooooooo - '); + RandHex(11,2,true,true,true,false); + RandHex(23,2,true,true,false,false); + RandHex(35,2,true,true,true,false); + RandHex(47,2,true,true,true,false); + RandHex(59,2,true,true,false,false); + RandHex(35,3,false,false,false,true); + RandHex(56,3,false,false,false,false); + RandFile(67,3); + end; +end; + +procedure FillOutDlls; +var c,x: integer; + done: boolean; +begin + GotoXY(1,9); + for c:=1 to 25 do begin + done := false; + repeat + if (done) then x:=40 else x:=1; + GotoXY(x,WhereY); + RandHex(WhereX,WhereY,false,false,false,false); + Write(' '); + RandHex(WhereX,WhereY,false,false,false,false); { DATUM } + Write(' - '); + RandFile(WhereX,WhereY); + done := true; + until ((done) AND (x=40)); + WriteLn; + end; +end; + +procedure FillOutDump; +var c,i: integer; +begin + GotoXY(1,36); + for c:=1 to 10 do begin + for i:=1 to 7 do begin + RandHex(WhereX,WhereY,false,false,false,false); + Write(' '); + end; + Write('- '); + if (c=1) then Write('ntoskrnl.exe') else RandFile(WhereX,WhereY); + WriteLn; + end; +end; + +procedure MemDump; +var i: integer; +begin + i := 0; + GotoXY(1,47); + WriteLn('Beginnen des Speicherabbildes'); + Write('Speicher wird auf Datentrger abgebildet: '); + for i:=1 to 100 do begin + GotoXY(43,48); + Write(i:3); + GotoXY(1,1); + Delay(Random(300)+250); + if (keypressed) then begin + ReadKey; + exitnow := true; + Exit; + end; + end; + GotoXY(1,48); + WriteLn('Speicherabbild abgeschlossen. Wenden Sie sich an den Systemadministrator'); + Write('oder einen Techniker.'); +end; + +begin + Init; + Mask; + FillOutError; + FillOutDlls; + FillOutDump; + MemDump; + Outit; +end. diff --git a/BP-HILFE/BAR3D.PAS b/BP-HILFE/BAR3D.PAS new file mode 100644 index 0000000..8e8969f --- /dev/null +++ b/BP-HILFE/BAR3D.PAS @@ -0,0 +1,20 @@ +uses Graph; + +var + Gd, Gm: Integer; + Y0, Y1, Y2, X1, X2: Integer; +begin + Gd := Detect; + InitGraph(Gd, Gm, 'F:\SPRACHEN\BP\BGI\'); + if GraphResult <> grOk then + Halt(1); + Y0 := 10; + Y1 := 60; + Y2 := 110; + X1 := 10; + X2 := 50; + Bar3D(X1, Y0, X2, Y1, 10, TopOn); + Bar3D(X1, Y1, X2, Y2, 10, TopOff); + Readln; + CloseGraph; +end. diff --git a/BP-HILFE/ORD.PAS b/BP-HILFE/ORD.PAS new file mode 100644 index 0000000..e065689 --- /dev/null +++ b/BP-HILFE/ORD.PAS @@ -0,0 +1,14 @@ + {Ord.PAS} + +{Beispielcode fr die Funktion Ord } + + uses Crt; + + type + Colors = (RED,GREEN,BLUE); + begin + Writeln('BLUE has an ordinal value of ', + Ord(BLUE)); + Writeln('The ASCII code for "c" is ', + Ord('c'), ' decimal'); + end. diff --git a/CODER_T.OLD b/CODER_T.OLD new file mode 100644 index 0000000..cbb3e72 --- /dev/null +++ b/CODER_T.OLD @@ -0,0 +1,36 @@ +program Coder_Test; + +uses Crt, Coder; + +var org,x: string; + +begin + TextBackground(0); + TextColor(15); + ClrScr; + Write('Zu verschlsselnder Text: '); + ReadLn(org); + RSInit := Length(org)*11; + WriteLn('RandSeed: ',RSInit); + WriteLn; + + x := org; + Write('OrdCode (co=true) :'); + OrdCode(x,code); + WriteLn(x); + + x := org; + Write('OrdCode (co=false) :'); + OrdCode(x,decode); + WriteLn(x); + + x := org; + Write('SortCode (co=true) :'); + SortCode(x,code); + WriteLn(x); + + x := org; + Write('SortCode (co=false):'); + SortCode(x,decode); + WriteLn(x); +end. \ No newline at end of file diff --git a/CODER_T.PAS b/CODER_T.PAS new file mode 100644 index 0000000..52f390a --- /dev/null +++ b/CODER_T.PAS @@ -0,0 +1,56 @@ +program Coder_Test; + +uses Crt, Coder; + +var org,x: string; + +begin + TextColor(15); + TextBackground(0); + ClrScr; + Write('Zu verschlsselnder Text: '); + ReadLn(org); + RSInit := Length(org) * 11; + WriteLn('RandSeed: ',RSInit); + WriteLn; + + x := org; + WriteLn('OrdCode (co=true)'); + OrdCode(x,code); + WriteLn(x); + OrdCode(x,decode); + WriteLn(x); + WriteLn; + + x := org; + WriteLn('OrdCode (co=false)'); + OrdCode(x,decode); + WriteLn(x); + OrdCode(x,code); + WriteLn(x); + WriteLn; + + x := org; + WriteLn('SortCode (co=true)'); + SortCode(x,code); + WriteLn(x); + SortCode(x,decode); + WriteLn(x); + WriteLn; + + x := org; + WriteLn('SortCode (co=false)'); + SortCode(x,decode); + WriteLn(x); + SortCode(x,code); + WriteLn(x); + WriteLn; + + x := org; + WriteLn('Hebrew'); + Hebrew(x); + WriteLn(x); + Hebrew(x); + WriteLn(x); + WriteLn; +end. diff --git a/COMPTON.PAS b/COMPTON.PAS new file mode 100644 index 0000000..fe506fb --- /dev/null +++ b/COMPTON.PAS @@ -0,0 +1,40 @@ +program Physik; + +uses Crt; + +const W:real=3.204E-14; { Wkin = 200 keV } + C:real=2.99792458E8; { c } + M:real=9.1093897E-31; { Elektronenmasse } + comp=13; + +var mx, vx: real; + omx,ovx: real; + mc, omc, vc, ovc: string; + ct: longint; + +begin + ClrScr; + mx := M; + vx := 0; + ct := 0; + WriteLn('Gewnschte Genauigkeit: ',comp-2,' Stellen nach dem Kommata.'); + repeat + omx := mx; + ovx := vx; + vx := Sqrt((2*W)/(mx)); + mx := M/Sqrt(1-Sqr(vx/C)); + Inc(ct); + Str(mx,mc); + Str(omx,omc); + Str(vx,vc); + Str(ovx,ovc); + mc := Copy(mc,1,comp); + omc := Copy(omc,1,comp); + vc := Copy(vc,1,comp); + ovc := Copy(ovc,1,comp); + GotoXY(1,3); + WriteLn('[',ct:5,'] Elektronenmasse m: ',mx,' '); + WriteLn('[',ct:5,'] Geschwindigkeit v: ',vx,' '); + Delay(200); + until (mc=omc) AND (vc=ovc); +end. \ No newline at end of file diff --git a/CONTEST/AUFG1.PAS b/CONTEST/AUFG1.PAS new file mode 100644 index 0000000..8db3e16 --- /dev/null +++ b/CONTEST/AUFG1.PAS @@ -0,0 +1,218 @@ +{ Aufgabe fr den Bundeswettbewerb in Informatik + + Aufgabe 1 + + Belagerung um Farnsworth Castle + + AD 1314. Nicht mehr lange knnen die Ritter Knigin Eleonores auf Farns- + worth Castle die Angreifer des Blythletwick-Clans abhalten. Die einzige + Hoffnung der Knigin ist die Benachrichtigung ihres Sohnes John, der sich + mit Julee, der Prinzessin des Clans, verlobt hat. Wre sie auf Farnsworth, + mten die Blythlethwicks verhandeln. Doch die Knigin kann sich nicht + sicher sein, da ihr Bote nicht abgefangen wird. Wrde ihr Plan bekannt, + wre Blutvergieen unvermeidbar. Eleonore schickt darum zwei Boten: Einen + mit einer verschlsselten Botschaft, den anderen mit einem Schlssel. Bei + der Verschlsselung geht sie folgendermaen vor: Sie schneidet eine qua- + dratische Schablone aus Leder, die in quadratische Felder eingeteilt ist. + Manche dieser Felder sind ausgeschnitten. Diese Schablone legt die Knigin + auf ein Stck Papier und schreibt die ersten Buchstaben ihrer Botschaft + von links nach rechts, oben nach unten, durch die ausgeschnittenen Felder. + Dann dreht sie die Schablone um 90 Grad im Uhrzeigersinn, schreibt weiter + und wiederholt diesen Vorgang noch zwei weitere Male. + Die Nachricht ist: + + KOMM UND BRING JULEE NACH FARNSWORTH + + Schablone und verschlsselte Nachricht sehen so aus: + + BRKOAE + ER IMN + NMS WN + OGA CJ + UHRNUD + L FTH + + 1. Welchen Anforderungen mssen Anzahl und Anordnung der Lcher gengen, + damit die Schablone zur Verschlsselung geeignet ist? + 2. Gib ein einfaches Verfahren fr den Entwurf von geeigneten Schablonen + an. + 3. Schreibe ein Programm, das anhand einer gegebenen Schablone eine Nach- + richt ver- und entschlsseln kann. Wie sieht die mit der obigen Scha- + blone verschlsselte Fassung folgender Rckantwort aus? + + JULEE MIT STALLKNECHT DURCHGEBRANNT +} + +program Belagerung_um_Farnsworth_Castle; +{ Lsung ausgearbeitet von Markus Birth } + +uses Crt; + +var Template: array[1..6] of string[6]; + chosen: char; + i, j: integer; + MaxC: integer; + +procedure InitTemplate; + begin + Template[1] := '001100'; + Template[2] := '000010'; + Template[3] := '010100'; + Template[4] := '000000'; + Template[5] := '100101'; + Template[6] := '100000'; + end; + +procedure WriteTemplate(y,x: integer); + begin + GotoXY(x,y); + MaxC := 0; + for i:=1 to 6 do begin + for j:=1 to 6 do begin + if Copy(Template[i],j,1)='0' then Write('') else begin + Write(''); + Inc(MaxC); + end; + end; + GotoXY(x,y+i); + end; + MaxC := MaxC * 4; + end; + +procedure TurnTemplate; + var Temp: array[1..6] of string[6]; + begin + for i := 1 to 6 do begin + Temp[i] := Template[i]; + Template[i] := ''; + end; + for i := 1 to 6 do begin + for j := 1 to 6 do Template[i] := Template[i] + Copy(Temp[7-j],i,1); + end; + end; + +procedure Coding; + var Text2Code: string; + take, curchar: integer; + + const xco = 3; + yco = 3; + + begin + curchar := 1; + ClrScr; + TextColor(White); + Write('Text eingeben (max. ', MaxC, ' Zeichen): '); + TextColor(LightGray); + ReadLn(Text2Code); + TextColor(White); + Write('Anzahl Buchstaben: '); + TextColor(LightGray); + WriteLn(Length(Text2Code)); + TextColor(White); + for take := 1 to 4 do begin + WriteTemplate(yco+1, xco+10); + for i := 1 to 6 do begin + for j := 1 to 6 do begin + if Copy(Template[i],j,1)='1' then begin + GotoXY(xco+j,yco+i); + Write(Copy(Text2Code,curchar,1)); + GotoXY(xco+17+curchar,yco+6); + Write(Copy(Text2Code,curchar,1)); + Inc(curchar); + end; + Delay(50); + end; + end; + TurnTemplate; + end; + GotoXY(3, yco+10); + TextColor(Yellow); + WriteLn('Taste drcken, wenn bereit...'); + ReadKey; + end; + +procedure DeCoding; + var Coded: array[1..6] of string[6]; + take, curchar: integer; + + const xco = 19; + yco = 2; + + begin + curchar := 1; + ClrScr; + WriteLn('Pro Zeile nur 6 Buchstaben!'); + for i := 1 to 6 do begin + Write('Zeile ', i, ': '); + ReadLn(Coded[i]); + GotoXY(1,i+1); + WriteLn(' '); + end; + for take := 1 to 4 do begin + WriteTemplate(yco, xco); + for i := 1 to 6 do begin + for j := 1 to 6 do begin + if Copy(Template[i],j,1)='1' then begin + GotoXY(xco+curchar+8,yco+5); + Write(Copy(Coded[i],j,1)); + Inc(curchar); + GotoXY(j+9, i+1); + Write(' '); + end; + Delay(50); + end; + end; + TurnTemplate; + end; + GotoXY(3, yco+10); + TextColor(Yellow); + WriteLn('Taste drcken, wenn bereit...'); + ReadKey; + end; + +begin + ClrScr; + TextColor(White); + WriteLn('-= Belagerung um Farnsworth Castle =-'); + TextColor(Cyan); + WriteLn('Aufgabe 1 vom Bundeswettbewerb fr Informatik 97'); + TextColor(LightGray); + WriteLn; + WriteLn('Umgesetzt von Markus Birth'); + InitTemplate; + TextColor(Yellow); + WriteLn('Verwendete Schablone mit Drehergebnissen:'); + TextColor(LightGray); + Delay(500); + WriteTemplate(6,1); + TextColor(DarkGray); + TurnTemplate; + Delay(500); + WriteTemplate(6,11); + TurnTemplate; + Delay(500); + WriteTemplate(6,21); + TurnTemplate; + Delay(500); + WriteTemplate(6,31); + TurnTemplate; + TextColor(Yellow); + WriteLn; + Write('Maximale Zeichenanzahl: '); + TextColor(LightGray); + WriteLn(MaxC); + WriteLn; + Write('Wollen Sie '); + TextColor(Yellow); + Write('v'); + TextColor(LightGray); + Write('erschlsseln oder '); + TextColor(Yellow); + Write('e'); + TextColor(LightGray); + Write('ntschlsseln (andere Taste - quit)? '); + chosen := UpCase(ReadKey); + if chosen='V' then Coding; + if chosen='E' then DeCoding; +end. \ No newline at end of file diff --git a/CONTEST/AUFG4.PAS b/CONTEST/AUFG4.PAS new file mode 100644 index 0000000..3019005 --- /dev/null +++ b/CONTEST/AUFG4.PAS @@ -0,0 +1,205 @@ +{ Aufgabe fr den Bundeswettbewerb in Informatik + + Aufgabe 4 + + Wetter in Quadratien + + Quadratien ist ein quadratisches Gebiet aus quadratischen Feldern. Das Feld + in der Nordwest-Ecke hat die Zeilennummer 0 und die Spaltennummer 0. + + Das Wetter in Quadratien wird durch quadratische Wolken bestimmt, die genau + ein Feld gro sind. Solche Wolken rcken getaktet ber Quadratien vor, und + zwar von Norden nach Sden 2 Felder pro Takt und, in einer anderen Hhe, + von Westen nach Osten 3 Felder pro Takt. Es regnet berall dort, wo sich + nach einem Vorrcken sowohl eine Nord-Sd- als auch eine West-Ost-Wolke + befindet. Wolken, aus denen regnet, lsen sich auf. + + Die Wolkenvorhersage gibt an, an welchen Stellen (in der Form: Zeilennum- + mer, Spaltennummer) sich zum aktuellen Zeitpunkt Wolken befinden. Daraus + lt sich dann ermitteln, wo es in Quadratien regnen wird, denn es werden + nur solche Wolken angegeben, die ber Quadratien hinwegziehen werden. + + Beispiel: + Wolkenvorhersage: + -5/ 6 -4/ 6 -2/ 7 7/-6 -2/ 9 -5/ 7 + 1/-2 8/-6 6/-6 7/-7 6/-7 1/-3 -2/ 8. + + Es wird jeweils einmal regnen an den Stellen 1,6, 1,7 und 8,9. + + Aufgabe: + Schreibe ein Programm, welches folgendes leistet: + 1. Einlesen der Gre von Quadratien (Anzahl Zeilen bzw. Spalten) + 2. Einlesen einer Wolkenvorhersage + 3. Ausgabe, wo in Quadratien wie oft Regen fllt + + Sende uns 3 Beispiele, darunter eines fr ein Quadratien der Gre 10x10 + und folgender Wolkenvorhersage: + 2/-3 -5/ 5 -3/ 4 1/-4 6/-12 -3/ 5 + -7/ 5 3/-10 -6/ 6 6/-11 -7/ 4 3/-4 + -4/ 5 -3/ 3 -6/ 9 2/-4 +} + +program Wetter_in_Quadratien; +{ Lsung ausgearbeitet von Markus Birth } + +uses Crt; + +type W=record + x,y: integer; + dir: integer; + end; + R=record + x,y: integer; + w1,w2: integer; + end; + +const simdel=500; + +var Wolke: array[1..50] of W; + Rain: array[1..50] of R; + QX, QY: integer; + count, rct: integer; + MatrixX, MatrixY: integer; + i, j, k, l: integer; + maxtakes: integer; + +procedure InitClouds; +{ Wolke.Dir: 1= li=>re + 2= ob=>un } + begin + for i:=1 to count do begin + if Wolke[i].x<0 then Wolke[i].dir := 1; + if Wolke[i].x0) then begin + TextColor(LightCyan); + Write(''); + end; + end; + end; + end; + end; + +procedure SimClouds; + begin + for i:=1 to count do begin + if Wolke[i].dir=1 then Wolke[i].x:=Wolke[i].x+3; + if Wolke[i].dir=2 then Wolke[i].y:=Wolke[i].y+2; + if (Wolke[i].dir<0) OR (Wolke[i].dir>2) then WriteLn('ERRRORRR!!!'); + end; + end; + +procedure CheckForRain; + begin + for j:=1 to count do begin + for k:=j to count do begin + if (Wolke[j].x=Wolke[k].x) AND (Wolke[j].y=Wolke[k].y) AND (j<>k) + AND (Wolke[j].dir<>0) AND (Wolke[k].dir<>0) then begin + Rain[rct].x := Wolke[j].x; Rain[rct].y := Wolke[j].y; + Rain[rct].w1 := j; Rain[rct].w2 := k; + Inc(rct); + Wolke[k].x := 0; Wolke[k].y := 0; Wolke[k].dir := 0; + Wolke[j].x := 0; Wolke[j].y := 0; Wolke[j].dir := 0; + end; + end; + end; + end; + +procedure ProgHeader; + begin + TextColor(White); + WriteLn('-= Wetter in Quadratien =-'); + TextColor(Cyan); + WriteLn('Aufgabe 4 vom Bundeswettbewerb fr Informatik'); + TextColor(LightGray); + WriteLn; + WriteLn('Umgesetzt von Markus Birth'); + WriteLn; + end; + +procedure InputData; + begin + TextColor(Yellow); + Write('Geben Sie die Breite Quadratiens ein: '); + TextColor(LightGray); + ReadLn(QX); + TextColor(Yellow); + Write('Geben Sie nun die Hhe Quadratiens ein: '); + TextColor(LightGray); + ReadLn(QY); + WriteLn; + TextColor(White); + WriteLn('Jetzt kommen die Wolken... (Beenden durch Eingabe von 0 und 0! 5|-10;-5|5)'); + for i:=1 to 50 do begin + if k=0 then j := 0; + if k=1 then j := 27; + if k=2 then j := 54; + Inc(k); + if k>2 then k := 0; + GotoXY(j, WhereY-1); + TextColor(Yellow); + Write('Wolke ', i, ' Y: '); + TextColor(LightGray); + ReadLn(Wolke[i].y); + GotoXY(16+j, WhereY-1); + TextColor(Yellow); + Write('X: '); + TextColor(LightGray); + ReadLn(Wolke[i].x); + if (Wolke[i].y = 0) AND (Wolke[i].x = 0) then break; + Inc(count); + end; + end; + +begin + ClrScr; + Inc(rct); + ProgHeader; + InputData; + TextColor(Yellow); + Write('Anzahl Wolken: '); + TextColor(LightGray); + WriteLn(count); + InitClouds; + ClrScr; + TextColor(Yellow); + WriteLn('-= Simulation =-'); + WriteMatrix(1,3); + maxtakes := Trunc((QX-MatrixX)/3); + if Trunc((QY-MatrixY)/2)>maxtakes then maxtakes := Trunc((QY-MatrixY)/2); + maxtakes := maxtakes+1; + for l:=1 to maxtakes do begin + SimClouds; + Delay(simdel); + WriteMatrix(1,3); + CheckForRain; + end; + + for i:=1 to rct-1 do begin + GotoXY(1,i); + TextColor(White); + GotoXY(QX-MatrixX+5,2+i); + WriteLn(i,'. Regen bei ',Rain[i].y,'|',Rain[i].x,' - Wolken: ',Rain[i].w1,' + ',Rain[i].w2); + end; + GotoXY(5,24); + TextColor(Yellow); + WriteLn('Bitte eine Taste drcken...'); + ReadKey; +end. \ No newline at end of file diff --git a/DATABANK/DATABANK.DAT b/DATABANK/DATABANK.DAT new file mode 100644 index 0000000..409b5ec --- /dev/null +++ b/DATABANK/DATABANK.DAT @@ -0,0 +1,8 @@ +Birth +Markus +Musterstrasse +1 +Musterstadt +12345 ++49 123 4567 ++49 123 5678 diff --git a/DATABANK/DATABANK.PAS b/DATABANK/DATABANK.PAS new file mode 100644 index 0000000..d243bf6 --- /dev/null +++ b/DATABANK/DATABANK.PAS @@ -0,0 +1,367 @@ +program Datenbank; +uses Crt,Dos; + +const Defaultfile:string ='DataBank.DAT'; + Cfgfile='DataBank.INI'; + CName=0; + CVorname=1; + CStrasse=2; + CNummer=3; + COrt=4; + CPLZ=5; + CTel=6; + CFax=7; + +type Daten=record + Namen: string[30]; + Vorname: string[15]; + Strasse: string[30]; + Nummer: string[6]; + Ort: string[20]; + PLZ: string[10]; + Tel: string[30]; + Fax: string[30]; + end; + +type ActiveCheck=record + Add: boolean; + Edit: boolean; + Del: boolean; + View: boolean; + Load: boolean; + Save: boolean; + Change: boolean; + Init: boolean; + end; + +var Adresse: array[0..99] of Daten; + Act: ActiveCheck; + CenterPos, RetValue: integer; + +procedure StartInit; + begin + Act.Load:=true; + Act.Change:=true; + Act.Init:=true; + end; + +procedure ReadyBeep; + begin + Sound(800); + Delay(50); + NoSound; + Delay(50); + Sound(1000); + Delay(50); + NoSound; + Delay(50); + Sound(1200); + Delay(50); + NoSound; + end; + +procedure ErrorBeep; + begin + Sound(100); + Delay(200); + NoSound; + end; + +procedure AckBeep; + begin + Sound(1200); + Delay(25); + NoSound; + end; + +procedure DrawBorder(MaxX,MaxY: integer; TCol, BCol: integer; BType: integer); + var i,j: integer; + lx,rx,oy,uy,mx,my: integer; + DrwDelay, FilDelay: integer; + Border: string[8]; + begin + window(1,1,80,25); + if (MaxX=0) AND (MaxY=0) AND (TCol=0) AND (BCol=0) then Exit; + if BType=1 then Border := 'ڿٳ'; + if BType=2 then Border := 'ɻȼ'; + if BType=3 then Border := 'ոԾ'; + if BType=4 then Border := 'ַӽ'; + if BType=5 then Border := ''; + if BType=6 then Border := 'ڷԼ'; + lx := 41-MaxX; oy := 13-MaxY; rx := 40+MaxX; uy := 12+MaxY; + mx := 40; my := 12; DrwDelay := 1000 div (2*MaxX); FilDelay := 1; + TextColor(TCol); TextBackground(BCol); + for i:=mx downto lx+1 do begin + GotoXY(i,oy); Write(Border[7]); + GotoXY((rx+1)-i+lx-1,oy); Write(Border[7]); + Delay(DrwDelay); + end; + GotoXY(lx,oy); Write(Border[1]); + GotoXY(rx,oy); Write(Border[2]); + Delay(DrwDelay); + for i:=oy+1 to uy-1 do begin + GotoXY(lx,i); Write(Border[5]); + GotoXY(rx,i); Write(Border[6]); + Delay(DrwDelay); + end; + GotoXY(lx,uy); Write(Border[3]); + GotoXY(rx,uy); Write(Border[4]); + Delay(DrwDelay); + for i:=lx+1 to mx do begin + GotoXY(i,uy); Write(Border[8]); + GotoXY((rx+1)-i+lx-1,uy); Write(Border[8]); + Delay(DrwDelay); + end; + for i:=lx+1 to rx-1 do begin + for j:=oy+1 to uy-1 do begin + GotoXY(i,j); Write(' '); + Delay(FilDelay); + end; + end; + CenterPos := (rx-lx) div 2; window(lx+2,oy+1,rx-2,uy-1); + end; + +procedure WriteC(text: string); + var x,y: integer; + begin + x := CenterPos-(Length(text) div 2); + y := WhereY; + GotoXY(x,y); + Write(text); + end; + +procedure WriteCLn(text: string); + var x,y: integer; + begin + x := CenterPos-(Length(text) div 2); + y := WhereY; + GotoXY(x,y); + WriteLn(text); + end; + +procedure MainWindow; + begin + DrawBorder(40,12,15,0,4); + GotoXY(1,1); + TextColor(9); WriteC('- -'); Delay(100); + TextColor(3); WriteC('= ='); Delay(100); + TextColor(11); WriteC(' '); Delay(100); + TextColor(15); WriteC(' '); Delay(100); + TextColor(15); WriteC('D K'); Delay(150); + TextColor(7); WriteC('D K'); + TextColor(15); WriteC('A N'); Delay(150); + TextColor(8); WriteC('D K'); + TextColor(7); WriteC('A N'); + TextColor(15); WriteC('T A'); Delay(150); + TextColor(0); WriteC('D K'); + TextColor(8); WriteC('A N'); + TextColor(7); WriteC('T A'); + TextColor(15); WriteC('E B'); Delay(150); + TextColor(0); WriteC('A N'); + TextColor(8); WriteC('T A'); + TextColor(7); WriteC('E B'); + TextColor(15); WriteC('N-'); Delay(150); + TextColor(0); WriteC('T A'); + TextColor(8); WriteC('E B'); + TextColor(7); WriteC('N-'); Delay(150); + TextColor(0); WriteC('E B'); + TextColor(8); WriteC('N-'); Delay(150); + TextColor(0); WriteC('N-'); Delay(150); + TextColor(8); WriteC('DATEN-BANK'); Delay(200); + TextColor(6); WriteC('DATEN-BANK'); Delay(200); + TextColor(14); WriteC('DATEN-BANK'); + end; + +procedure FXWrite(text: string; finc: integer); + var x,y,i: integer; + finc2: integer; + Del1: integer; + begin + x := WhereX; + y := WhereY; + Del1 := 750 div Length(text); + if Del1>75 then Del1 := 75; + for i:=1 to Length(text) do begin + GotoXY(x+i-1,y); TextColor(15); Write(text[i]); + if i>1 then begin + GotoXY(x+i-2,y); + TextColor(7); + Write(text[i-1]); + end; + if i>2 then begin + GotoXY(x+i-3,y); + TextColor(8); + Write(text[i-2]); + end; + Delay(Del1); + end; + GotoXY(x+Length(text)-1,y); TextColor(7); Write(text[Length(text)]); + if Length(text)>1 then begin + GotoXY(x+Length(text)-2,y); + TextColor(8); + Write(text[Length(text)-1]); + end; + Delay(Del1); + GotoXY(x+Length(text)-1,y); TextColor(8); Write(text[Length(text)]); + Delay(Del1*3); + if finc<=blink then begin + if finc<8 then finc2 := finc+8 else finc2 := finc-8; + end else begin + if finc<8+blink then finc2 := finc+8 else finc2 := finc-8; + end; + if finc=8 then finc2 := 15; + if finc=15 then begin + GotoXY(x,y); TextColor(8); Write(text); Delay(100); + end; + GotoXY(x,y); TextColor(finc2); Write(text); + Delay(100); + if finc=8 then begin + GotoXY(x,y); TextColor(7); Write(text); Delay(100); + end; + GotoXY(x,y); TextColor(finc); Write(text); + end; + +procedure Copyright; + begin + DrawBorder(20,4,14,2,6); TextColor(DarkGray); + WriteCLn('Copyright (C)1997 by Markus Birth'); + GotoXY(13,1); FXWrite('(C)1997',8); + GotoXY(1,3); TextColor(White); + WriteCLn('Jeglicher Versto gegen dieses'); + WriteCLn('Copyright wird strafrechtlich'); + WriteCLn('verfolgt.'); + TextColor(LightRed); WriteC('Danke fr die Beachtung!'); + end; + +procedure ProgDesc; + begin + DrawBorder(15,2,11,1,5); + TextColor(DarkGray); + GotoXY(4,1); Write('-= DATEN-BANK =-'); + GotoXY(4,1); FXWrite('-= DATEN-BANK =-',15); WriteLn; + TextColor(DarkGray); WriteC('by RoboCop'); + ReadyBeep; + end; + +procedure MainMenu; + var ActCol: integer; + ColAct, ColInA: integer; + begin + ColAct:=1514; { Nur zur einfacheren Weiterverarbeitung: xxyy } + ColInA:=0808; { xx-Textfarbe --- yy-Buchstabe } + GotoXY(1,3); + TextColor(8); + WriteC(' Datendatei: '+Defaultfile+' '); + GotoXY(10,5); + FXWrite('Whlen Sie eine Aktion durch drcken der jeweiligen Taste',10); + if Act.Add then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(11,7); FXWrite(' - Adresse hinzufgen',Trunc(ActCol/100)); + GotoXY(11,7); FXWrite('A',ActCol-Trunc(ActCol/100)*100); + if Act.Edit then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(41,7); FXWrite(' - Adresse bearbeiten',Trunc(ActCol/100)); + GotoXY(41,7); FXWrite('E',ActCol-Trunc(ActCol/100)*100); + if Act.Del then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(11,9); FXWrite(' - Adresse lschen',Trunc(ActCol/100)); + GotoXY(11,9); FXWrite('D',ActCol-Trunc(ActCol/100)*100); + if Act.View then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(41,9); FXWrite(' - Adressen durchsehen',Trunc(ActCol/100)); + GotoXY(41,9); FXWrite('V',ActCol-Trunc(ActCol/100)*100); + GotoXY(9,11); FXWrite('',8); + if Act.Load then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(11,13); FXWrite(' - Datendatei laden',Trunc(ActCol/100)); + GotoXY(11,13); FXWrite('L',ActCol-Trunc(ActCol/100)*100); + if Act.Save then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(41,13); FXWrite(' - Datendatei schreiben',Trunc(ActCol/100)); + GotoXY(41,13); FXWrite('S',ActCol-Trunc(ActCol/100)*100); + if Act.Change then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(11,15); FXWrite(' - andere Datendatei',Trunc(ActCol/100)); + GotoXY(11,15); FXWrite('C',ActCol-Trunc(ActCol/100)*100); + if Act.Init then ActCol:=ColAct else ActCol:=ColInA; + GotoXY(41,15); FXWrite(' - Datendatei initiieren',Trunc(ActCol/100)); + GotoXY(41,15); FXWrite('I',ActCol-Trunc(ActCol/100)*100); + GotoXY(5,22); FXWrite('Dieses Programm wurde entwickelt von RoboCop IND. a.k.a. Markus Birth',8); + end; + +procedure InitNewDatabase; + begin + RetValue := 1; + AckBeep; + end; + +procedure ChangeDatafile; + begin + RetValue := 1; + AckBeep; + end; + +procedure ReadData(Datei: string); + begin + RetValue := 1; + AckBeep; + end; + +procedure WriteData(Datei: string); + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressNew; + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressDelete; + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressEdit; + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressBrowse; + begin + RetValue := 1; + AckBeep; + end; + +procedure AddressSearch; + begin + RetValue := 1; + AckBeep; + end; + +procedure MainSelect; + var KeyIn: char; + begin + KeyIn := ReadKey; + if (UpCase(KeyIn)='A') AND (Act.Add) then AddressNew; + if (UpCase(KeyIn)='E') AND (Act.Edit) then AddressEdit; + if (UpCase(KeyIn)='D') AND (Act.Del) then AddressDelete; + if (UpCase(KeyIn)='V') AND (Act.View) then AddressBrowse; + if (UpCase(KeyIn)='L') AND (Act.Load) then ReadData(Defaultfile); + if (UpCase(KeyIn)='W') AND (Act.Save) then WriteData(Defaultfile); + if (UpCase(KeyIn)='C') AND (Act.Change) then ChangeDatafile; + if (UpCase(KeyIn)='I') AND (Act.Init) then InitNewDatabase; + if RetValue=0 then begin + ErrorBeep; + MainSelect; + end; + RetValue := 0; + end; + +begin + Copyright; + Delay(2000); + ProgDesc; + Delay(1000); + MainWindow; + StartInit; + MainMenu; + MainSelect; +end. \ No newline at end of file diff --git a/DATECALC.PAS b/DATECALC.PAS new file mode 100644 index 0000000..3d4d731 --- /dev/null +++ b/DATECALC.PAS @@ -0,0 +1,75 @@ +program DateCalc; + +{ Tage zw. 2 Daten ausrechnen } + +const Tage:array[1..12] of byte=(31,0,31,30,31,30,31,31,30,31,30,31); + +var d1,m1,y1,d2,m2,y2: word; + dbw: integer; + +procedure GetDate(op: string;var d,m,y: word); +var dat: string[10]; + i,oldp: integer; + co: integer; +begin + Write(op,'. Datum eingeben [tt.mm.yyyy]: '); + ReadLn(dat); + oldp := 0; + for i := 1 to Length(dat) do begin + if dat[i]='.' then begin + if oldp=0 then Val(Copy(dat,oldp+1,i-oldp-1),d,co); + if oldp<>0 then Val(Copy(dat,oldp+1,i-oldp-1),m,co); + oldp := i; + end; + end; + Val(Copy(dat,oldp+1,Length(dat)-oldp),y,co); +end; + +procedure ValCheck(d1,m1,y1,d2,m2,y2: word); +var err: boolean; +begin + err := false; + if (m1=m2) AND (y1=y2) AND (d1>d2) then err := true; + if (y1=y2) AND (m1>m2) then err := true; + if (y1>y2) then err := true; + if (m1>13) OR (m2>13) OR (m1<1) OR (m2<1) then err := true; + if (d1>31) OR (d2>31) OR (d1<1) OR (d2<1) then err := true; + if err=true then begin + WriteLn; + WriteLn('Fehler im Datum. Datum 1 ist lter als Datum 2 oder falsche Zahlen!'); + Halt; + end; +end; + +procedure CalcDays(d1,m1,y1,d2,m2,y2: word; var days: integer); +var i: integer; +begin + if (m1=m2) AND (y1=y2) then begin + days := days + (d2-d1); + Exit; + end; + days := 0; + if m1<>2 then days := days + (Tage[m1]-d1) else begin + if y1/4=y1 DIV 4 then days := days + (29-d1) else days := days + (28-d1); + end; + if (y1=y2) AND (m2-1>=m1+1) then begin + for i:=m1+1 to m2-1 do begin + if i<>2 then days := days + Tage[i] else begin + if y1/4=y1 DIV 4 then days := days + 29 else days := days + 28; + end; + end; + end; + days := days + d2; +end; + +begin + WriteLn('-=+ DateCalc +=- auf Wunsch von Anke'); + WriteLn; + GetDate('1',d1,m1,y1); + GetDate('2',d2,m2,y2); + WriteLn('Datum 1: ',d1,'.',m1,'.',y1); + WriteLn('Datum 2: ',d2,'.',m2,'.',y2); + ValCheck(d1,m1,y1,d2,m2,y2); + CalcDays(d1,m1,y1,d2,m2,y2,dbw); + WriteLn('Tage: ',dbw); +end. diff --git a/DIGICLK.PAS b/DIGICLK.PAS new file mode 100644 index 0000000..bef0a49 --- /dev/null +++ b/DIGICLK.PAS @@ -0,0 +1,109 @@ +program DigiClock; + +uses Crt, Dos, Graph, BGIP; + +const DigiData: array[0..9] of string[7]=('1110111','0010010','1011101','1011011', + '0111010','1101011','1101111','1010010', + '1111111','1111011'); + digacol: byte =14; + digdcol: byte =0; + +var xmax,ymax: word; + h,m,s,hh: word; + olds: word; + + +procedure InitVid; +var grDriver, grMode : integer; +begin + grDriver := VGA; + grMode := VGAhi; + InitGraph(grDriver,grMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } +end; + +procedure WriteDig(pos,which,col: byte); +const sw=40; + sh=40; + sa=3; + ya=20; + xa=5; + +var ab: word; + +begin + SetColor(col); + ab := pos*Trunc(sw*1.9); + SetLineStyle(UserBitLn,$AAAA,ThickWidth); + case which of + 1: begin + MoveTo(xa+ab+sa,ya); + LineTo(xa+ab+sa+sw,ya); + end; + 2: begin + MoveTo(xa+ab,ya+sa); + LineTo(xa+ab,ya+sa+sh); + end; + 3: begin + MoveTo(xa+ab+sa+sw+sa,ya+sa); + LineTo(xa+ab+sa+sw+sa,ya+sa+sh); + end; + 4: begin + MoveTo(xa+ab+sa,ya+sa+sh+sa); + LineTo(xa+ab+sa+sw,ya+sa+sh+sa); + end; + 5: begin + MoveTo(xa+ab,ya+sa+sh+sa+sa); + LineTo(xa+ab,ya+sa+sh+sa+sa+sh); + end; + 6: begin + MoveTo(xa+ab+sa+sw+sa,ya+sa+sh+sa+sa); + Lineto(xa+ab+sa+sw+sa,ya+sa+sh+sa+sa+sh); + end; + 7: begin + MoveTo(xa+ab+sa,ya+sa+sh+sa+sa+sh+sa); + LineTo(xa+ab+sa+sw,ya+sa+sh+sa+sa+sh+sa); + end; + end; +end; + +procedure OutDig(pos,which: byte); +var digcs: string[7]; + i: integer; +begin + digcs := DigiData[which]; + for i:=1 to 7 do begin + if digcs[i]='0' then WriteDig(pos,i,digdcol) else WriteDig(pos,i,digacol); + end; +end; + +procedure OutitVid; +begin + TextMode(CO80); + WriteLn('Programm beendet.'); +end; + +begin + InitVid; + Randomize; + repeat + while olds=s do begin + GetTime(h,m,s,hh); + if keypressed then begin + ReadKey; + Halt; + end; + end; + { digacol := Random(8)+8; } + olds := s; + OutDig(0,h DIV 10); + OutDig(1,h MOD 10); + OutDig(3,m DIV 10); + OutDig(4,m MOD 10); + OutDig(6,s DIV 10); + OutDig(7,s MOD 10); + until keypressed; + ReadKey; + OutitVid; +end. diff --git a/DIGUHR.PAS b/DIGUHR.PAS new file mode 100644 index 0000000..27b99e0 --- /dev/null +++ b/DIGUHR.PAS @@ -0,0 +1,39 @@ +program DIGUHR; + +uses Crt; + +const sstd1=2; { Std1 } + sstd2=1; { Std2 } + smin1=4; { Min1 } + smin2=5; { Min2 } + ssek1=5; { Sek1 } + ssek2=3; { Sek2 } + sset: boolean=true; + +var std1,std2,ende,min1,min2,sek1,sek2: byte; + +begin + ClrScr; + repeat + for std1:=0 to 2 do begin + if std1=2 then ende:=3 else ende:=9; + for std2:=0 to ende do + for min1:=0 to 5 do + for min2:=0 to 9 do + for sek1:=0 to 5 do + for sek2:=0 to 9 do begin + GotoXY(1,1); + Write(std1,std2,':',min1,min2,'.',sek1,sek2); + if sset then begin + if (std1=sstd1) AND (std2=sstd2) AND + (min1=smin1) AND (min2=smin2) AND + (sek1=ssek1) AND (sek2=ssek2) then sset:=false; + end else Delay(1000); + if keypressed then begin + ReadKey; + Exit; + end; + end; + end; + until 0=1; +end. diff --git a/DREIE3D.PAS b/DREIE3D.PAS new file mode 100644 index 0000000..139e8bc --- /dev/null +++ b/DREIE3D.PAS @@ -0,0 +1,84 @@ +program Dreiecksberechnung_3D; {Autor: RoboCop of nOOb} + + + +{ Die Volumenberechnung ist nicht komplett!!! } + + + +uses Crt,Logo; +var AX,AY,AZ,BX,BY,BZ,CX,CY,CZ,LAB,LBC,LCA,V,MABX,MABY,MABZ,MBCX,MBCY,MBCZ,MCAX,MCAY,MCAZ,SA,SB,SC: real; + +function Mittelpunkt(P1,P2:real):real; +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(P1X,P1Y,P1Z,P2X,P2Y,P2Z:real):real; +begin + Laenge := Sqrt(Sqr(P2X-P1X)+Sqr(P2Y-P1Y)+Sqr(P2Z-P1Z)); +end; + +function Volumen(P1X,P1Y,P1Z,P2X,P2Y,P2Z,P3X,P3Y,P3Z:real):real; +begin + Volumen := 0.5*Abs(P1Y*(P3X-P2X)+P2Y*(P1X-P3X)+P3Y*(P2X-P1X)); +end; + +begin; + ClrScr; + TextColor(15); + WriteLn('-= 3D - DREIECKSBERECHNUNG =-'); + WriteLn; + WriteLn('Another program by'); + WriteLogo; + TextColor(7); + Write('Punkt A - X:'); + ReadLn(AX); + Write('Punkt A - Y:'); + ReadLn(AY); + Write('Punkt A - Z:'); + ReadLn(AZ); + Write('Punkt B - X:'); + ReadLn(BX); + Write('Punkt B - Y:'); + ReadLn(BY); + Write('Punkt B - Z:'); + ReadLn(BZ); + Write('Punkt C - X:'); + ReadLn(CX); + Write('Punkt C - Y:'); + ReadLn(CY); + Write('Punkt C - Z:'); + ReadLn(CZ); + MABX := Mittelpunkt(AX,BX); + MABY := Mittelpunkt(AY,BY); + MABZ := Mittelpunkt(AZ,BZ); + MBCX := Mittelpunkt(BX,CX); + MBCY := Mittelpunkt(BY,CY); + MBCZ := Mittelpunkt(BZ,CZ); + MCAX := Mittelpunkt(CX,AX); + MCAY := Mittelpunkt(CY,AY); + MCAZ := Mittelpunkt(CZ,AZ); + WriteLn('M-AB: ',MABX:0:2,'|',MABY:0:2,'|',MABZ:0:2); + WriteLn('M-BC: ',MBCX:0:2,'|',MBCY:0:2,'|',MBCZ:0:2); + WriteLn('M-CA: ',MCAX:0:2,'|',MCAY:0:2,'|',MCAZ:0:2); + LAB := Laenge(AX,AY,AZ,BX,BY,BZ); + LBC := Laenge(BX,BY,BZ,CX,CY,CZ); + LCA := Laenge(CX,CY,CZ,AX,AY,AZ); + WriteLn('Lnge AB: ',LAB:5:2,' LE'); + WriteLn('Lnge BC: ',LBC:5:2,' LE'); + WriteLn('Lnge CA: ',LCA:5:2,' LE'); + V := Volumen(AX,AY,AZ,BX,BY,BZ,CX,CY,CZ); + Write('Volumeninhalt: ',V:5:2,' VE'); + { IF F=0 THEN WriteLn(' === Die Punkte sind kollinear. DAS IST KEIN 3ECK!!') ELSE WriteLn; } + SA := Laenge(MBCX,MBCY,MBCZ,AX,AY,AZ); + SB := Laenge(MCAX,MCAY,MCAZ,BX,BY,BZ); + SC := Laenge(MABX,MABY,MABZ,CX,CY,CZ); + WriteLn('Seitenhalbierende A-MBC: ',SA:5:2,' LE'); + WriteLn('Seitenhalbierende B-MCA: ',SB:5:2,' LE'); + WriteLn('Seitenhalbierende C-MAB: ',SC:5:2,' LE'); + WriteLn; + WriteLn('Bitte Taste drcken...'); + ReadKey; + WriteLn('=== FERTIG! ==='); +end. \ No newline at end of file diff --git a/DREIECK.PAS b/DREIECK.PAS new file mode 100644 index 0000000..93a0b59 --- /dev/null +++ b/DREIECK.PAS @@ -0,0 +1,68 @@ +program Nennen_wir_es_Dreiecksberechnung; {Autor: RoboCop IND.} +uses Crt,Logo; +var AX,AY,BX,BY,CX,CY,LAB,LBC,LCA,F,MABX,MABY,MBCX,MBCY,MCAX,MCAY,SA,SB,SC: real; + +function Mittelpunkt(P1,P2:real):real; +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(P1X,P1Y,P2X,P2Y:real):real; +begin + Laenge := Sqrt(Sqr(P2X-P1X)+Sqr(P2Y-P1Y)); +end; + +function Flaeche(P1X,P1Y,P2X,P2Y,P3X,P3Y:real):real; +begin + Flaeche := 0.5*Abs(P1Y*(P3X-P2X)+P2Y*(P1X-P3X)+P3Y*(P2X-P1X)); +end; + +begin; + ClrScr; + TextColor(15); + WriteLn('-= DREIECKSBERECHNUNG =-'); + WriteLn; + WriteLn('2nd program by'); + WriteLogo; + TextColor(7); + Write('Punkt A - X:'); + ReadLn(AX); + Write('Punkt A - Y:'); + ReadLn(AY); + Write('Punkt B - X:'); + ReadLn(BX); + Write('Punkt B - Y:'); + ReadLn(BY); + Write('Punkt C - X:'); + ReadLn(CX); + Write('Punkt C - Y:'); + ReadLn(CY); + MABX := Mittelpunkt(AX,BX); + MABY := Mittelpunkt(AY,BY); + MBCX := Mittelpunkt(BX,CX); + MBCY := Mittelpunkt(BY,CY); + MCAX := Mittelpunkt(CX,AX); + MCAY := Mittelpunkt(CY,AY); + WriteLn('M-AB: ',MABX:2:2,'|',MABY:2:2); + WriteLn('M-BC: ',MBCX:2:2,'|',MBCY:2:2); + WriteLn('M-CA: ',MCAX:2:2,'|',MCAY:2:2); + LAB := Laenge(AX,AY,BX,BY); + LBC := Laenge(BX,BY,CX,CY); + LCA := Laenge(CX,CY,AX,AY); + WriteLn('Lnge AB: ',LAB:5:2,' LE'); + WriteLn('Lnge BC: ',LBC:5:2,' LE'); + WriteLn('Lnge CA: ',LCA:5:2,' LE'); + F := Flaeche(AX,AY,BX,BY,CX,CY); + Write('Flche: ',F:5:2,' FE'); + IF F=0 THEN WriteLn(' === Die Punkte sind kollinear. DAS IST KEIN 3ECK!!') ELSE WriteLn; + SA := Laenge(MBCX,MBCY,AX,AY); + SB := Laenge(MCAX,MCAY,BX,BY); + SC := Laenge(MABX,MABY,CX,CY); + WriteLn('Seitenhalbierende A-MBC: ',SA:5:2,' LE'); + WriteLn('Seitenhalbierende B-MCA: ',SB:5:2,' LE'); + WriteLn('Seitenhalbierende C-MAB: ',SC:5:2,' LE'); + WriteLn; + WriteLn('Bitte Taste drcken...'); + ReadKey; + WriteLn('=== FERTIG! ==='); +end. \ No newline at end of file diff --git a/DRWBRD.PAS b/DRWBRD.PAS new file mode 100644 index 0000000..964b445 --- /dev/null +++ b/DRWBRD.PAS @@ -0,0 +1,84 @@ +program BorderTest; + +uses Crt; + +var i: integer; + +procedure DrawBorder(MaxX,MaxY: integer; TCol, BCol: integer; BType: integer); + var i,j: integer; + lx,rx,oy,uy,mx,my: integer; + DrwDelay, FilDelay: integer; + Border: string[8]; + CenterPos: integer; + begin + window(1,1,80,25); + if (MaxX=0) AND (MaxY=0) AND (TCol=0) AND (BCol=0) then Exit; + if BType=1 then Border := 'ڿٳ'; + if BType=2 then Border := 'ɻȼ'; + if BType=3 then Border := 'ոԾ'; + if BType=4 then Border := 'ַӽ'; + if BType=5 then Border := ''; + if BType=6 then Border := 'ڷԼ'; + lx := 41-MaxX; oy := 13-MaxY; rx := 40+MaxX; uy := 12+MaxY; + mx := 40; my := 12; DrwDelay := 1000 div (2*MaxX); FilDelay := 1; + TextColor(TCol); TextBackground(BCol); + for i:=mx downto lx+1 do begin + GotoXY(i,oy); Write(Border[7]); + GotoXY((rx+1)-i+lx-1,oy); Write(Border[7]); + Delay(DrwDelay); + end; + GotoXY(lx,oy); Write(Border[1]); + GotoXY(rx,oy); Write(Border[2]); + Delay(DrwDelay); + for i:=oy+1 to uy-1 do begin + GotoXY(lx,i); Write(Border[5]); + GotoXY(rx,i); Write(Border[6]); + Delay(DrwDelay); + end; + GotoXY(lx,uy); Write(Border[3]); + GotoXY(rx,uy); Write(Border[4]); + Delay(DrwDelay); + for i:=lx+1 to mx do begin + GotoXY(i,uy); Write(Border[8]); + GotoXY((rx+1)-i+lx-1,uy); Write(Border[8]); + Delay(DrwDelay); + end; + for i:=lx+1 to rx-1 do begin + for j:=oy+1 to uy-1 do begin + GotoXY(i,j); Write(' '); + Delay(FilDelay); + end; + end; + CenterPos := (rx-lx) div 2; window(lx+2,oy+1,rx-2,uy-1); + end; + +procedure NameBorder(num: integer); +begin + GotoXY(1,1); + WriteLn('B'); + WriteLn('O'); + WriteLn('R'); + WriteLn('D'); + WriteLn('E'); + WriteLn('R'); + WriteLn('#'); + WriteLn(num); +end; + +begin + ClrScr; + DrawBorder(40,12,15,0,1); + NameBorder(1); + DrawBorder(35,11,14,1,2); + NameBorder(2); + DrawBorder(30,10,13,2,3); + NameBorder(3); + DrawBorder(25,9,12,3,4); + NameBorder(4); + DrawBorder(20,8,11,4,5); + NameBorder(5); + DrawBorder(15,7,10,5,6); + NameBorder(6); + Write('Jedes Fenster ist durch ein window-Befehl begrenzt. Dadurch wird ein Zerstren des Fensters durch einen Umbruch'); + WriteLn(' verhindert.'); +end. \ No newline at end of file diff --git a/FILLMEM.PAS b/FILLMEM.PAS new file mode 100644 index 0000000..ee5f575 --- /dev/null +++ b/FILLMEM.PAS @@ -0,0 +1,23 @@ +program MemTest; + +uses Crt; + +var i: longint; + +procedure FillMem(x: longint); +begin + WriteLn('FillMem [',x,'] <-'); + if x<1982 then FillMem(x+1); + WriteLn('FillMem [',x,'] ->'); +end; + +begin + ClrScr; + { i := 0; + repeat + Inc(i); + FillMem(i); + until keypressed; + ReadKey; } + FillMem(1); +end. diff --git a/FUNCTION.PAS b/FUNCTION.PAS new file mode 100644 index 0000000..fa8cce1 --- /dev/null +++ b/FUNCTION.PAS @@ -0,0 +1,137 @@ +program BGIGraph; + +uses Crt, Graph, BGIP; + +const xsize=600; { Breite des Funktionsfensters } + ysize=440; { Hhe des Funktionsfensters } + xscaledelay=0; + yscaledelay=0; + graphdelay=6; + WaitAfterInit=500; + +var xmax, ymax: integer; + xmed, ymed: integer; + xsmed, ysmed: integer; + + +procedure InitGraphic; { Initialisiert die Grafik und definiert alle wichtigen Variablen } +var BGIMode, BGIDriv: integer; +begin + BGIDriv := 9; + BGIMode := 2; + InitGraph(BGIDriv,BGIMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xsize div 2; { Mitte-X des Funktionsfensters } + ymed := ysize div 2; { Mitte-Y des Funktionsfensters } + xsmed := xmax div 2; { Mitte-X des Bildschirmes } + ysmed := ymax div 2; { Mitte-Y des Bildschirmes } + Delay(WaitAfterInit); +end; + +procedure CloseGraphic; +begin + CloseGraph; +end; + +procedure MakeScale; +var i: integer; +begin + SetTextStyle(DefaultFont, HorizDir, 1); + SetColor(14); + OutTextXY(150,10,'-=+ RoboCop''s ultimativer Funktionsplotter +=-'); + SetColor(8); + Line(xsmed-xmed,ysmed,xsmed+xmed,ysmed); + Line(xsmed,ysmed-ymed,xsmed,ysmed+ymed); + for i:=xsmed-xmed to xsmed+xmed do begin + if ((i-(xsmed-xmed))/10=Int((i-(xsmed-xmed))/10)) then begin + if ((i-(xsmed-xmed))/50=Int((i-(xsmed-xmed))/50)) then begin + SetColor(7); + Line(i,ysmed-2,i,ysmed+2); + end else begin + SetColor(8); + Line(i,ysmed-1,i,ysmed+1); + end; + end; + Delay(xscaledelay); + end; + for i:=ysmed-ymed to ysmed+ymed do begin + if ((i-(ysmed-ymed))/10=Int((i-(ysmed-ymed))/10)) then begin + if ((i-(ysmed-ymed))/50=Int((i-(ysmed-ymed))/50)) then begin + SetColor(7); + Line(xsmed-2,i,xsmed+2,i); + end else begin + SetColor(8); + Line(xsmed-1,i,xsmed+1,i); + end; + end; + Delay(yscaledelay); + end; + SetColor(15); + OutTextXY(xmed+xsmed,ysmed+10,'x'); + OutTextXY(xsmed+10,ysmed-ymed-5,'y'); +end; + +function y(x: real): real; +begin + y := x*x*x-3*x*x+2; +end; + +procedure MakeFunction; +var i: integer; + ty: integer; + fr,fpr,x: real; +begin + SetColor(9); + for i:=xsmed-xmed to xsmed+xmed do begin + x := ((i-1)-xsmed)/(xmed/10); + fpr := y(x); + if fpr>32767 then fpr := 32767; + if fpr<-32767 then fpr := -32767; + fr := fpr*(ysize div 20); + ty := ysmed-Trunc(fr); + if ty>ysmed+ymed then begin + SetColor(0); + ty := ysmed+ymed; + end else if ty32767 then fpr := 32767; + if fpr<-32767 then fpr := -32767; + fr := fpr*(ysize div 20); + ty := ysmed-Trunc(fr); + if ty>ysmed+ymed then begin + SetColor(0); + ty := ysmed+ymed; + end else if tyx1 then begin + for i:=x1 to x2 do begin + y := Trunc(((y2-y1)/(x2-x1))*(i-x1)+y1); + PutPixel(i,y,c); + end; + end else if x1>x2 then begin + for i:=x1 downto x2 do begin + y := trunc(((y2-y1)/(x2-x1))*(i-x1)+y1); + PutPixel(i,y,c); + end; + end else if y2>y1 then begin + for i:=y1 to y2 do PutPixel(x1,i,c); + end else if y1>y2 then begin + for i:=y1 downto y2 do PutPixel(x1,i,c); + end; +end; + +procedure Square(x1,y1,x2,y2: integer; c:byte); +begin + Line(x1,y1,x2,y1,c); + Line(x1,y1,x1,y2,c); + Line(x1,y2,x2,y2,c); + Line(x2,y1,x2,y2,c); +end; + +procedure Lines; +begin + InitGraph; + repeat + Line(0,0,320,200,Random(256)); + Line(320,0,0,200,Random(256)); + Line(160,0,160,200,Random(256)); + Line(0,100,320,100,Random(256)); + until keypressed; + ReadKey; + CloseGraph; +end; + +procedure RandPix; +begin + InitGraph; + repeat + PutPixel(Random(320),Random(200),Random(256)); + until keypressed; + ReadKey; + CloseGraph; +end; + +procedure FillScreen(c: byte); +var i,j: integer; +begin + InitGraph; + for i:=0 to 200 do begin + for j:=0 to 320 do begin + PutPixel(j,i,c); + if keypressed then begin + ReadKey; + CloseGraph; + Exit; + end; + end; + end; + ReadKey; + CloseGraph; +end; + +procedure WhitePix; +const MarkCol=8; +begin + InitGraph; + Line(160,98,160,80,MarkCol); + PutPixel(159,97,MarkCol); + PutPixel(161,97,MarkCol); + Line(160,102,160,120,MarkCol); + PutPixel(159,103,MarkCol); + PutPixel(161,103,MarkCol); + Line(158,100,140,100,MarkCol); + PutPixel(157,99,MarkCol); + PutPixel(157,101,MarkCol); + Line(162,100,180,100,MarkCol); + PutPixel(163,99,MarkCol); + PutPixel(163,101,MarkCol); + Square(150,90,170,110,MarkCol); + repeat + PutPixel(160,100,12); + PutPixel(160,100,10); + PutPixel(160,100,11); + until keypressed; + ReadKey; + CloseGraph; +end; + +procedure RandSquare; +var x1,y1,x2,y2,c: integer; +begin + InitGraph; + repeat + x1 := Random(320); + y1 := Random(200); + x2 := Random(320); + y2 := Random(200); + c := Random(256); + Square(x1,y1,x2,y2,c); + until keypressed; + ReadKey; + CloseGraph; +end; + +procedure ColorTable; +var i,j: integer; + tm: byte; +begin + InitGraph; + for i:=0 to 199 do begin + for j:=0 to 319 do begin + { PutPixel(j,i,Trunc(((j/20)+1)*((i/12.5)+1))); } + tm := Trunc((j/20)*(i/12.5)); + PutPixel(j,i,tm); + if keypressed then begin + ReadKey; + CloseGraph; + Exit; + end; + end; + end; + ReadKey; + CloseGraph; + ClrScr; +end; + + +{ Ellipsengleichung + + x y + -- + -- = 1 + a b } + +procedure Ellipsoid(x1,y1,x2,y2: integer; c:byte); +begin + +end; + +begin + Randomize; + + Lines; + RandPix; + FillScreen(Random(256)); + WhitePix; + RandSquare; + ColorTable; +end. \ No newline at end of file diff --git a/GRAV.OUT b/GRAV.OUT new file mode 100644 index 0000000..c24b5ca --- /dev/null +++ b/GRAV.OUT @@ -0,0 +1,185 @@ +-= RoboCop's Gravitation =- + +Log vom: 26.8.1998 / 12:40.10,12 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s + + Zeit --- Hhe +########.##### --- ########.##### + 20.00010s --- 999869.14487m + 40.00020s --- 999476.42930m + 60.00030s --- 998821.40197m + 80.00030s --- 997903.31339m + 100.00030s --- 996721.09900m + 120.00030s --- 995273.38423m + 140.00030s --- 993558.47481m + 160.00030s --- 991574.34799m + 180.00030s --- 989318.64189m + 200.00030s --- 986788.64287m + 220.00030s --- 983981.27079m + 240.00030s --- 980893.06198m + 260.00030s --- 977520.14959m + 280.00040s --- 973858.22214m + 300.00050s --- 969902.55212m + 320.00060s --- 965647.91573m + 340.00070s --- 961088.57601m + 360.00080s --- 956218.24549m + 380.00090s --- 951030.04370m + 400.00100s --- 945516.44900m + 420.00110s --- 939669.24377m + 440.00120s --- 933479.45189m + 460.00130s --- 926937.26752m + 480.00140s --- 920031.97344m + 500.00150s --- 912751.84731m + 520.00160s --- 905084.05379m + 540.00170s --- 897014.51968m + 560.00180s --- 888527.78904m + 580.00190s --- 879606.85415m + 600.00200s --- 870232.95741m + 620.00210s --- 860385.35794m + 640.00220s --- 850041.05484m + 660.00230s --- 839174.45704m + 680.00240s --- 827756.98675m + 700.00250s --- 815756.59932m + 720.00260s --- 803137.19715m + 740.00270s --- 789857.90761m + 760.00280s --- 775872.18446m + 780.00290s --- 761126.67690m + 800.00300s --- 745559.78856m + 820.00310s --- 729099.81558m + 840.00320s --- 711662.50319m + 860.00330s --- 693147.78194m + 880.00340s --- 673435.31940m + 900.00350s --- 652378.31521m + 920.00360s --- 629794.60818m + 940.00370s --- 605453.51800m + 960.00380s --- 579055.61594m + 980.00390s --- 550200.13543m + 1000.00400s --- 518329.30345m + 1020.00410s --- 482625.76914m + 1040.00420s --- 441803.28351m + 1060.00430s --- 393611.94057m + 1080.00440s --- 333359.35994m + 1100.00450s --- 246824.13935m + 1120.00460s --- 61331.81844m + 1140.00470s --- -55209.82198m + 1160.00480s --- 535105.10044m + 1180.00490s --- -2440783.59073m + 1200.00500s --- -6272963.42890m +Endzeit: 1201.00010 s +Endhhe: 705716.27092 m + +Mindestwert bei 1152.68540 s mit 0.96213 m. + +### Beendet: 26.8.1998 / 12:40.45,77 + + +-= RoboCop's Gravitation =- + +Log vom: 13.4.1999 / 9:45.56,54 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s + + Zeit --- Hhe +########.##### --- ########.##### + 20.00010s --- 999869.14487m + 40.00020s --- 9-= RoboCop's Gravitation =- + +Log vom: 24.11.2000 / 21:59.0,82 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s + + Zeit --- Hhe +########.##### --- ########.##### + 20.00010s --- 999869.14487m + 40.00020s --- 999476.42930m + 60.00030s --- 998821.40197m + 80.00030s --- 997903.31339m + 100.00030s --- 996721.09900m + 120.00030s --- 995273.38423m + 140.00030s --- 993558.47481m + 160.00030s --- 991574.34799m + 180.00030s --- 989318.64189m + 200.00030s --- 986788.64287m + 220.00030s --- 983981.27079m + 240.00030s --- 980893.06198m + 260.00030s --- 977520.14959m + 280.00040s --- 973858.22214m + 300.00050s --- 969902.55212m + 320.00060s --- 965647.91573m + 340.00070s --- 961088.57601m + 360.00080s --- 956218.24549m + 380.00090s --- 951030.04370m + 400.00100s --- 945516.44900m + 420.00110s --- 939669.24377m + 440.00120s --- 933479.45189m + 460.00130s --- 926937.26752m + 480.00140s --- 920031.97344m + 500.00150s --- 912751.84731m + 520.00160s --- 905084.05379m + 540.00170s --- 897014.51968m + 560.00180s --- 888527.78904m + 580.00190s --- 879606.85415m + 600.00200s --- 870232.95741m + 620.00210s --- 860385.35794m + 640.00220s --- 850041.05484m + 660.00230s --- 839174.45704m + 680.00240s --- 827756.98675m + 700.00250s --- 815756.59932m + 720.00260s --- 803137.19715m + 740.00270s --- 789857.90761m + 760.00280s --- 775872.18446m + 780.00290s --- 761126.67690m + 800.00300s --- 745559.78856m + 820.00310s --- 729099.81558m + 840.00320s --- 711662.50319m + 860.00330s --- 693147.78194m + 880.00340s --- 673435.31940m + 900.00350s --- 652378.31521m + 920.00360s --- 629794.60818m + 940.00370s --- 605453.51800m + 960.00380s --- 579055.61594m + 980.00390s --- 550200.13543m + 1000.00400s --- 518329.30345m + 1020.00410s --- 482625.76914m + 1040.00420s --- 441803.28351m + 1060.00430s --- 393611.94057m + 1080.00440s --- 333359.35994m + 1100.00450s --- 246824.13935m + 1120.00460s --- 61331.81844m + 1140.00470s --- -55209.82198m + 1160.00480s --- 535105.10044m + 1180.00490s --- -2440783.59073m + 1200.00500s --- -6272963.42890m +Endzeit: 1201.00010 s +Endhhe: 705716.27092 m + +Mindestwert bei 1152.68540 s mit 0.96213 m. + +### Beendet: 24.11.2000 / 21:59.36,30 + + diff --git a/GRAV.PAS b/GRAV.PAS new file mode 100644 index 0000000..c1554ff --- /dev/null +++ b/GRAV.PAS @@ -0,0 +1,175 @@ +{$N+} +program Gravitation; + +uses Crt,Dos; + +var act,old,tim,last: extended; + percges: extended; + steps: extended; + actstep,oldact: longint; + proz,oldproz: real; + lowt: extended; + lowh: extended; + perc: real; + h,m,s,hu: word; + d,mm,y,dof: word; + ofile: text; + + +const Hoehe=1E+06; + Gravk=6.67259E-11; + Erdm=7.35E+22; { Erde: 5.976E+24, Mond: 7.35E+22 } + Erdrad=1738000; { Erde: 6371025 , Mond: 1738000 } + Schritt=20; + IS:extended=1E-4; + Start=0; + Ende=1200; + Arg=9; + Va=11; + AnU:integer=10000; + OUT:boolean=TRUE; + +function GetHeight(tim,old: extended):extended; +begin + GetHeight:=Hoehe-((Gravk*Erdm)/(2*Sqr(Erdrad+old)))*Sqr(tim); +end; + +procedure ArgOut(desc:string;val:extended;un:string;x:integer); +begin + TextColor(Arg); + Write(desc+': '); + TextColor(Va); + Write(val:0:x); + TextColor(Arg); + WriteLn(' '+un+' '); +end; + +function LTo14(num: extended): string; +var temp: string; + i: integer; +begin + Str(num:8:5,temp); + for i:=1 to 14-Length(temp) do temp:=' '+temp; + LTo14 := temp; +end; + +procedure ShowMeThat; +var temp,temp2: string; + i: integer; +begin + GotoXY(1,6); + ArgOut('Zeit',tim,'s',5); + ArgOut('Hhe',act,'m',5); + if OUT then WriteLn(ofile,LTo14(tim),'s --- ',LTo14(act),'m'); +end; + +procedure IncStep; +begin + actstep:=actstep+1; + if (actstep>0) then proz:=(actstep/steps)*100 else proz:=0; + if proz>=oldproz+0.1 then begin + oldproz:=proz; + GotoXY(40,3); + ArgOut('Rechnung',actstep,'',0); + GotoXY(40,4); + ArgOut('Prozent',proz,'',1); + end; +end; + +procedure CheckOut; +begin + if tim>=last+Schritt then begin + last:=tim; + ShowMeThat; + end; +end; + +procedure StartCalc; +label 1; +begin +1:act:=GetHeight(tim,old); + old:=act; + IncStep; + if ((act0)) then begin + lowh:=act; + lowt:=tim; + end; + CheckOut; + if tim0 then Rewrite(ofile); + WriteLn(ofile,'-= RoboCop''s Gravitation =-'); + WriteLn(ofile,''); + GetDate(y,mm,d,dof); + GetTime(h,m,s,hu); + WriteLn(ofile,'Log vom: ',d,'.',mm,'.',y,' / ',h,':',m,'.',s,',',hu); + WriteLn(ofile,''); + WriteLn(ofile,'Initialhhe : ',Hoehe:0:5,' m'); + WriteLn(ofile,'Gravitationskonstante: ',Gravk:1,' m^3*kg^-1*s^-2'); + WriteLn(ofile,'Masse Krper 1 : 1 kg'); + WriteLn(ofile,'Masse Krper 2 : ',Erdm:1,' kg'); + WriteLn(ofile,'Radius Krper 2 : ',Erdrad,' m'); + WriteLn(ofile,'Schrittweite : ',Schritt,' s'); + WriteLn(ofile,'Genauigkeit : ',IS:0:5,' s'); + WriteLn(ofile,'Anfang : ',Start,' s'); + WriteLn(ofile,'Ende : ',Ende,' s'); + WriteLn(ofile,''); + WriteLn(ofile,' Zeit --- Hhe'); + WriteLn(ofile,'########.##### --- ########.#####'); + end; +end; + +procedure Outit; +begin + GotoXY(1,9); + ArgOut('Endzeit',tim,'s',5); + ArgOut('Endhhe',act,'m',5); + if OUT then begin + WriteLn(ofile,'Endzeit: ',tim:0:5,' s'); + WriteLn(ofile,'Endhhe: ',act:0:5,' m'); + WriteLn(ofile,''); + WriteLn(ofile,'Mindestwert bei ',lowt:0:5,' s mit ',lowh:0:5,' m.'); + GetDate(y,mm,d,dof); + GetTime(h,m,s,hu); + WriteLn(ofile,''); + WriteLn(ofile,'### Beendet: ',d,'.',mm,'.',y,' / ',h,':',m,'.',s,',',hu); + WriteLn(ofile,''); + WriteLn(ofile,''); + Close(ofile); + end; +end; + +begin + Init; + StartCalc; + Outit; +end. \ No newline at end of file diff --git a/GRAV/GRAV.OUT b/GRAV/GRAV.OUT new file mode 100644 index 0000000..4f10675 --- /dev/null +++ b/GRAV/GRAV.OUT @@ -0,0 +1,97 @@ +-= RoboCop's Gravitation =- + +Log vom: 16.3.1998 / 9:43.9,90 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s + + Zeit --- Hhe +########.##### --- ########.##### + 20.00010s --- 999869.14487m + 40.00020s --- 999476.42930m + 60.00030s --- 998821.40197m + 80.00030s --- 997903.31339m + 100.00030s --- 996721.09900m + 120.00030s --- 995273.38423m + 140.00030s --- 993558.47481m + 160.00030s --- 991574.34799m + 180.00030s --- 989318.64189m + 200.00030s --- 986788.64287m + 220.00030s --- 983981.27079m + 240.00030s --- 980893.06198m + 260.00030s --- 977520.14959m + 280.00040s --- 973858.22214m + 300.00050s --- 969902.55212m + 320.00060s --- 965647.91573m + 340.00070s --- 961088.57601m + 360.00080s --- 956218.24549m + 380.00090s --- 951030.04370m + 400.00100s --- 945516.44900m + 420.00110s --- 939669.24377m + 440.00120s --- 933479.45189m + 460.00130s --- 926937.26752m + 480.00140s --- 920031.97344m + 500.00150s --- 912751.84731m + 520.00160s --- 905084.05379m + 540.00170s --- 897014.51968m + 560.00180s --- 888527.78904m + 580.00190s --- 879606.85415m + 600.00200s --- 870232.95741m + 620.00210s --- 860385.35794m + 640.00220s --- 850041.05484m + 660.00230s --- 839174.45704m + 680.00240s --- 827756.98675m + 700.00250s --- 815756.59932m + 720.00260s --- 803137.19715m + 740.00270s --- 789857.90761m + 760.00280s --- 775872.18446m + 780.00290s --- 761126.67690m + 800.00300s --- 745559.78856m + 820.00310s --- 729099.81558m + 840.00320s --- 711662.50319m + 860.00330s --- 693147.78194m + 880.00340s --- 673435.31940m + 900.00350s --- 652378.31521m + 920.00360s --- 629794.60818m + 940.00370s --- 605453.51800m + 960.00380s --- 579055.61594m + 980.00390s --- 550200.13543m + 1000.00400s --- 518329.30345m + 1020.00410s --- 482625.76914m + 1040.00420s --- 441803.28351m + 1060.00430s --- 393611.94057m + 1080.00440s --- 333359.35994m + 1100.00450s --- 246824.13935m + 1120.00460s --- 61331.81844m + 1140.00470s --- -55209.82198m + 1160.00480s --- 535105.10044m + 1180.00490s --- -2440783.59073m + 1200.00500s --- -6272963.42890m +Endzeit: 1201.00010 s +Endhhe: 705716.27092 m + +Mindestwert bei 1152.68540 s mit 0.96213 m. + +### Beendet: 16.3.1998 / 9:44.17,40 + + +-= RoboCop's Gravitation =- + +Log vom: 1.10.1998 / 14:51.49,89 + +Initialhhe : 1000000.00000 m +Gravitationskonstante: 6.7E-0011 m^3*kg^-1*s^-2 +Masse Krper 1 : 1 kg +Masse Krper 2 : 7.4E+0022 kg +Radius Krper 2 : 1738000 m +Schrittweite : 20 s +Genauigkeit : 0.00010 s +Anfang : 0 s +Ende : 1200 s diff --git a/GRAV/GRAV.PAS b/GRAV/GRAV.PAS new file mode 100644 index 0000000..c1554ff --- /dev/null +++ b/GRAV/GRAV.PAS @@ -0,0 +1,175 @@ +{$N+} +program Gravitation; + +uses Crt,Dos; + +var act,old,tim,last: extended; + percges: extended; + steps: extended; + actstep,oldact: longint; + proz,oldproz: real; + lowt: extended; + lowh: extended; + perc: real; + h,m,s,hu: word; + d,mm,y,dof: word; + ofile: text; + + +const Hoehe=1E+06; + Gravk=6.67259E-11; + Erdm=7.35E+22; { Erde: 5.976E+24, Mond: 7.35E+22 } + Erdrad=1738000; { Erde: 6371025 , Mond: 1738000 } + Schritt=20; + IS:extended=1E-4; + Start=0; + Ende=1200; + Arg=9; + Va=11; + AnU:integer=10000; + OUT:boolean=TRUE; + +function GetHeight(tim,old: extended):extended; +begin + GetHeight:=Hoehe-((Gravk*Erdm)/(2*Sqr(Erdrad+old)))*Sqr(tim); +end; + +procedure ArgOut(desc:string;val:extended;un:string;x:integer); +begin + TextColor(Arg); + Write(desc+': '); + TextColor(Va); + Write(val:0:x); + TextColor(Arg); + WriteLn(' '+un+' '); +end; + +function LTo14(num: extended): string; +var temp: string; + i: integer; +begin + Str(num:8:5,temp); + for i:=1 to 14-Length(temp) do temp:=' '+temp; + LTo14 := temp; +end; + +procedure ShowMeThat; +var temp,temp2: string; + i: integer; +begin + GotoXY(1,6); + ArgOut('Zeit',tim,'s',5); + ArgOut('Hhe',act,'m',5); + if OUT then WriteLn(ofile,LTo14(tim),'s --- ',LTo14(act),'m'); +end; + +procedure IncStep; +begin + actstep:=actstep+1; + if (actstep>0) then proz:=(actstep/steps)*100 else proz:=0; + if proz>=oldproz+0.1 then begin + oldproz:=proz; + GotoXY(40,3); + ArgOut('Rechnung',actstep,'',0); + GotoXY(40,4); + ArgOut('Prozent',proz,'',1); + end; +end; + +procedure CheckOut; +begin + if tim>=last+Schritt then begin + last:=tim; + ShowMeThat; + end; +end; + +procedure StartCalc; +label 1; +begin +1:act:=GetHeight(tim,old); + old:=act; + IncStep; + if ((act0)) then begin + lowh:=act; + lowt:=tim; + end; + CheckOut; + if tim0 then Rewrite(ofile); + WriteLn(ofile,'-= RoboCop''s Gravitation =-'); + WriteLn(ofile,''); + GetDate(y,mm,d,dof); + GetTime(h,m,s,hu); + WriteLn(ofile,'Log vom: ',d,'.',mm,'.',y,' / ',h,':',m,'.',s,',',hu); + WriteLn(ofile,''); + WriteLn(ofile,'Initialhhe : ',Hoehe:0:5,' m'); + WriteLn(ofile,'Gravitationskonstante: ',Gravk:1,' m^3*kg^-1*s^-2'); + WriteLn(ofile,'Masse Krper 1 : 1 kg'); + WriteLn(ofile,'Masse Krper 2 : ',Erdm:1,' kg'); + WriteLn(ofile,'Radius Krper 2 : ',Erdrad,' m'); + WriteLn(ofile,'Schrittweite : ',Schritt,' s'); + WriteLn(ofile,'Genauigkeit : ',IS:0:5,' s'); + WriteLn(ofile,'Anfang : ',Start,' s'); + WriteLn(ofile,'Ende : ',Ende,' s'); + WriteLn(ofile,''); + WriteLn(ofile,' Zeit --- Hhe'); + WriteLn(ofile,'########.##### --- ########.#####'); + end; +end; + +procedure Outit; +begin + GotoXY(1,9); + ArgOut('Endzeit',tim,'s',5); + ArgOut('Endhhe',act,'m',5); + if OUT then begin + WriteLn(ofile,'Endzeit: ',tim:0:5,' s'); + WriteLn(ofile,'Endhhe: ',act:0:5,' m'); + WriteLn(ofile,''); + WriteLn(ofile,'Mindestwert bei ',lowt:0:5,' s mit ',lowh:0:5,' m.'); + GetDate(y,mm,d,dof); + GetTime(h,m,s,hu); + WriteLn(ofile,''); + WriteLn(ofile,'### Beendet: ',d,'.',mm,'.',y,' / ',h,':',m,'.',s,',',hu); + WriteLn(ofile,''); + WriteLn(ofile,''); + Close(ofile); + end; +end; + +begin + Init; + StartCalc; + Outit; +end. \ No newline at end of file diff --git a/GZPRO.PAS b/GZPRO.PAS new file mode 100644 index 0000000..8709ffe --- /dev/null +++ b/GZPRO.PAS @@ -0,0 +1,23 @@ +program GZ_PRO_Reader; { Gebhrenzhler-Auslese-Software } +uses Crt; +var P: string; + Po: file; + TempVar: string; + +begin + ClrScr; + P := 'COM2'; + TextColor(Yellow); + TextBackground(Blue); + Write('GZ-PRO Lesesoftware'); + TextColor(White); + WriteLn(' (C)1997 by RoboCop IND.'); + TextBackground(Black); + TextColor(LightGray); + WriteLn('Port: '+P); + Assign(Po, P); + Reset(Po); + while not Eof(Po) do Read(P, TempVar); + Close(Po); + WriteLn(TempVar); +end. \ No newline at end of file diff --git a/HACKING/CC.PAS b/HACKING/CC.PAS new file mode 100644 index 0000000..228aab0 --- /dev/null +++ b/HACKING/CC.PAS @@ -0,0 +1,130 @@ +program CCMast; + +uses Crt, DOS; + +var c: record + len: integer; + str: string; + dig: array[1..16] of byte; + chk: integer; + typ: string; + val: string; + end; + +procedure InputCC; +begin + Write('Enter CC#: '); + ReadLn(c.str); +end; + +procedure CheckType(nam,pres,lens: string); +var clen: string; + i,oldidx: integer; + prechk, lenchk: boolean; +begin + oldidx := 1; + prechk := false; + for i:=1 to Length(pres) do begin + if pres[i]=',' then begin + if Copy(pres,oldidx,i-oldidx)=Copy(c.str,1,i-oldidx) then prechk := true; + oldidx := i+1; + end; + end; + oldidx := 1; + lenchk := false; + Str(c.len,clen); + for i:=1 to Length(lens) do begin + if lens[i]=',' then begin + if Copy(lens,oldidx,i-oldidx)=Copy(clen,1,i-oldidx) then lenchk := true; + oldidx := i+1; + end; + end; + { WriteLn(nam:16,' -prechk: ',prechk:5,' -lenchk: ',lenchk:5); } + if prechk AND lenchk then c.typ := nam; +end; + +procedure CheckCC; +var i,a,co: integer; +begin + c.len := Length(c.str); + for i:=1 to c.len do begin + Val(c.str[i],c.dig[i],co); + end; + c.chk := 0; + for i:=c.len downto 1 do begin + if (c.len-i) MOD 2=0 then a:=c.dig[i] else a:=c.dig[i]*2; + if a>9 then a := a-9; + { WriteLn(i:2,': [',c[i],']: ',a:2); } + c.chk := c.chk + a; + end; + + c.typ := 'unknown'; + CheckType('MasterCard', '51,52,53,54,55,', '16,'); + CheckType('VISA', '4,', '13,16,'); + CheckType('American Express', '34,37,', '15,'); + CheckType('Diner''s Club', '30,36,38,', '14,'); + CheckType('Discover', '6011,', '16,'); + CheckType('enRoute', '2014,2149,', '15,'); + CheckType('JCB','3088,3096,3112,3158,3337,3528,','16,'); + + WriteLn('Type: ', c.typ); + Write('Checksum: ', c.chk); + if (c.chk MOD 10=0) AND (c.len>12) AND (c.len<17) then c.val:='VALID' else c.val:='INVALID'; + WriteLn(' ',c.val); +end; + +function Checksum(x: string): integer; +var ch, i, co, j: integer; +begin + ch := 0; + for i:=1 to Length(x) do begin + val(x[i],j,co); + if (Length(x)-i) MOD 2<>0 then j:=j*2; + if j>9 then j := j - 9; + ch := ch + j; + end; + Checksum := ch; +end; + +function Valid(x: string): boolean; +begin + if Checksum(x) MOD 10=0 then Valid := true else Valid := false; +end; + +procedure Interpolate; +var f: text; + i: integer; + n,o: string; +begin + Assign(f,'CC.out'); + {$I-} + Append(f); + if IOResult<>0 then Rewrite(f); + {$I+} + WriteLn(f,'---- ---- ---- ----'); + Write(f,'New Interpolation from ',c.typ,' card '); + for i:=1 to c.len do begin + Write(f,c.dig[i]:1); + if (i MOD 4 = 0) AND (i<>16) then Write(f,' '); + end; + WriteLn(f,' (Checksum: ',c.chk,' [',c.val,'])'); + WriteLn(f,''); + for i:=0 to 9999 do begin + n := Copy(c.str,1,c.len-4); + if i<1000 then n := n + '0'; + if i<100 then n := n + '0'; + if i<10 then n := n + '0'; + Str(i:0,o); + n := n + o; + if (Valid(n)) AND (n<>c.str) then + WriteLn(f, Copy(n,1,4),' ',Copy(n,5,4),' ',Copy(n,9,4),' ',Copy(n,13,Length(n)-12),' [',Checksum(n),']'); + end; + Close(f); +end; + + +begin + InputCC; + CheckCC; + Interpolate; +end. diff --git a/HACKING/DECODE.PAS b/HACKING/DECODE.PAS new file mode 100644 index 0000000..cbce4ec --- /dev/null +++ b/HACKING/DECODE.PAS @@ -0,0 +1,124 @@ +program DecodeSubraum; + +uses Logo, Crt, VFx, Numbers; + +var KeyF,DecF: text; + + +procedure Init; +begin + ClrScr; + CursorOff; + TextColor(14); + WriteCLn('-= Subraum Decoder =-'); + WriteLn; + TextColor(8); + WriteLn('Decodiert KEYFILES vom Programm HRECORD.EXE.'); + WriteLn; + TextColor(7); + window(1,5,80,25); +end; + +procedure OpenInOut(InFile,OutFile: string); +begin + WStat('ffne '+InFile+' fr Eingabeoperationen'); + Assign(KeyF,InFile); + {$I-} + Reset(KeyF); + if IOResult<>0 then begin + Wcheck('%%140#FAIL'); + CWriteLn('%%12#FEHLER!! Datei "'+InFile+'" konnte nicht geffnet werden.'); + Halt; + end; + {$I+} + Wcheck('%%10# OK '); + + WStat('ffne '+OutFile+' fr Ausgabeoperationen'); + Assign(DecF,OutFile); + {$I-} + Rewrite(DecF); + if IOResult<>0 then begin + Wcheck('%%140#FAIL'); + CWriteLn('%%10#FEHLER!! Datei "'+OutFile+'" konnte nicht geffnet werden.'); + Halt; + end; + {$I+} + Wcheck('%%10# OK '); +end; + +procedure Decode; +var tmp: string; + key: byte; + dat: string; +begin + WStat('Decodierung'); + dat := ''; + while NOT Eof(KeyF) do begin + ReadLn(KeyF,tmp); + if Copy(tmp,1,3)='KEY' then begin + key := Hex2Dec(Copy(tmp,9,2)); + case key of + 008: dat := Copy(dat,1,Length(dat)-1); + 013: begin WriteLn(DecF,dat); dat := ''; end; + else + dat:=dat+Chr(key); + end; + end; + end; + + Wcheck('%%10# OK '); +end; + +procedure CloseInOut; +begin + WStat('Schliee Eingabedatei'); + Close(KeyF); + Wcheck('%%10# OK '); + WStat('Schliee Ausgabedatei'); + Close(DecF); + Wcheck('%%10# OK '); +end; + +procedure OutIt; +begin + WriteLn; + window(1,1,80,25); + GotoXY(1,24); + WriteLn('Programm beendet.'); + CursorOn; +end; + +begin + Init; + if ((ParamStr(1)='/?') OR (ParamStr(1)='-?') OR (ParamStr(1)='?') OR ((ParamStr(1)='') AND (ParamStr(2)=''))) then begin + WriteLogo; + TextColor(14); + WriteCLn('+ + + Taste drcken + + +'); + ReadKey; + GotoXY(1,WhereY-1); + Write(Space(80)); + GotoXY(1,WhereY-1); + TextColor(7); + WriteLn('Die DAT-Dateien sind nach folgendem Schema aufgebaut:'); + WriteLn('Die erste Zeile ist eine Leerzeile, in der 2. Zeile steht die Gesamtzahl der'); + WriteLn('enthaltenen Zeichen. Danach folgen die einzelnen Zeichen in folgender Form:'); + WriteLn; + WriteLn('KEY: xx yy zz aa'); + WriteLn('(xx,yy,zz und aa sind Hexadezimalwerte)'); + WriteLn; + WriteLn('xx ist dabei der SCANCODE des eingelesenen Zeichens, yy der quivalente'); + WriteLn('ASCII-Code und zz ein STATUS-Code. aa hat scheinbar keine Bedeutung.'); + WriteLn; + WriteLn('Dieses Programm wandelt die ASCII-Codes wieder in ASCII-Zeichen um und'); + WriteLn('erstellt eine Datei mit dem "dechiffrierten" Text.'); + WriteLn; + WriteLn('Syntax: ',ParamStr(0),' '); + WriteLn; + OutIt; + Halt; + end; + OpenInOut(ParamStr(1),ParamStr(2)); + Decode; + CloseInOut; + OutIt; +end. \ No newline at end of file diff --git a/HACKING/EXECTEST.PAS b/HACKING/EXECTEST.PAS new file mode 100644 index 0000000..5df54a0 --- /dev/null +++ b/HACKING/EXECTEST.PAS @@ -0,0 +1,13 @@ +{ $M $4000,0,0 } + +program ExecTest; + +uses Dos; + +begin + SwapVectors; + Exec('c:\command.com',''); + SwapVectors; + if DosError<>0 then WriteLn('Dos-Error: ',DosError); + WriteLn('Exitcode: ',DosExitCode); +end. \ No newline at end of file diff --git a/HACKING/HACKING.OVL b/HACKING/HACKING.OVL new file mode 100644 index 0000000..8c1bd8d Binary files /dev/null and b/HACKING/HACKING.OVL differ diff --git a/HACKING/HACKING.PAS b/HACKING/HACKING.PAS new file mode 100644 index 0000000..b8a342c --- /dev/null +++ b/HACKING/HACKING.PAS @@ -0,0 +1,55 @@ +{ $M $4000,0,0 } + +program Hacking_and_Phreaking; + +uses Crt, Logo, Dos, RC_Disk; + +var s: string; + f: file; + TempFile: string; + +procedure Init; + var f2c: string; + begin + GetDir(0,s); + f2c:=s+'\HACKING.OVL'; + WriteLn(f2c); + WriteLn(TempFile); + FileCopy(f2c, TempFile); + WriteLn('Temp-Datei angelegt!'); + Assign(f,TempFile); + end; + +procedure Outit; + begin + { Erase(f); } + end; + +procedure Extract(what: string); + var Password, Params: string; + i: integer; + begin + Password := '_r'; + Password := 'op' + Password + 'ul'; + Password := 'boC' + Password + 'ez'; + Password := 'Ro' + Password; + Params := '-s'+Password+' '+what; + SwapVectors; + WriteLn('Vectors swapped out'); + Exec(TempFile, Params); + WriteLn('EXEC command performed ('+tempfile+' '+Params+')'); + SwapVectors; + WriteLn('Vectors swapped in'); + end; + +begin + TempFile := GetEnv('TEMP')+'\~1234567.EXE'; + ClrScr; + Init; + delay(100); + Extract('MADMAN.TXT'); + SwapVectors; + Exec('c:\termin.exe',''); + SwapVectors; + Outit; +end. diff --git a/HACKING/RC_DISK.PAS b/HACKING/RC_DISK.PAS new file mode 100644 index 0000000..b860c24 --- /dev/null +++ b/HACKING/RC_DISK.PAS @@ -0,0 +1,32 @@ +unit RC_Disk; { BLEA01.PAS } + +interface + procedure FileCopy(src: string; tar: string); + +implementation + +procedure FileCopy(src: string; tar: string); + const + bytezahl=16384; + + var + Quelle, Ziel: file ; + Puffer: array [1..bytezahl] of byte; + Recordzahl, Rest: integer; + + begin + Assign(Quelle, src); + Reset(Quelle,1); + Assign(Ziel, tar); + Rewrite(Ziel,1); + Rest := FileSize(Quelle); + while Rest>0 do begin + if Bytezahl<=Rest then Recordzahl := Bytezahl else Recordzahl := Rest; + BlockRead(Quelle, Puffer, Recordzahl); + BlockWrite(Ziel, Puffer, Recordzahl); + Rest := Rest-Recordzahl; + end; + Close(Quelle); + Close(Ziel); + end; +end. diff --git a/HACKING/smsar.pas b/HACKING/smsar.pas new file mode 100644 index 0000000..c26b9da --- /dev/null +++ b/HACKING/smsar.pas @@ -0,0 +1,54 @@ +program SMSArchiverDecode; + +uses Crt, DOS; + +const ifile='smsar.dat'; + +var data: array[1..10] of string; + i,coe: integer; + f: text; + k: char; + cx,cy: integer; + +function Decode(x: string): string; +var i,y: integer; + tmp: string; +begin + tmp := ''; + for i:=1 to Length(x) do begin + y := Ord(x[i]); + tmp := tmp + Chr(y+coe); + end; + Decode := tmp; +end; + +procedure Get10Lines; +var i: integer; +begin + for i:=1 to 10 do ReadLn(f,data[i]); +end; + + +begin + ClrScr; + Write('Opening ',ifile,' ... '); + Assign(f,ifile); + Reset(f); + WriteLn('OK.'); + Write('Getting 10 lines ... '); + Get10Lines; + WriteLn('OK.'); + cx := WhereX; + cy := WhereY; + repeat + ClrScr; + for i:=1 to 10 do WriteLn(Decode(data[i])); + WriteLn('Coefficient: ',coe); + k := ReadKey; + if k='+' then coe:=coe+1; + if k='-' then coe:=coe-1; + until k=#27; + Write('Closing file ... '); + Close(f); + WriteLn('OK.'); +end. diff --git a/HTMLVIEW.HTM b/HTMLVIEW.HTM new file mode 100644 index 0000000..f42182c --- /dev/null +++ b/HTMLVIEW.HTM @@ -0,0 +1,12 @@ +Text blablabla...bla +Herzen: <3<3<3<3<3 :nezreH + + +BOLD TEXTNormalItalic text +Normal text +Underlined text +Normal text +Hyperlink +Font-Tag mit Color #FFFFFF und Face Comic Sans MS Ð Þ þ +fontNormal +© 1997 by RoboCop of nOOb (dä Rächä mit dém Bächa) diff --git a/HTMLVIEW.PAS b/HTMLVIEW.PAS new file mode 100644 index 0000000..03acd7a --- /dev/null +++ b/HTMLVIEW.PAS @@ -0,0 +1,202 @@ + program HTML_Viewer; { geschrieben von RoboCop of nOOb a.k.a. Markus Birth } + +uses Crt, Logo, BasicStrings, HTML, Statusbar, CursorOnOff, HTMLV_Unit; + +var ViewTags: boolean; { Tags anzeigen - BOOLEAN } + ShowCols: boolean; { Farben zeigen - BOOLEAN } + WordWrap: boolean; { Wortumbruch - BOOLEAN } + ConvEntit: boolean; { Entity-Konv. - BOOLEAN } + IK: char; { gedrckte Taste } + skipped: longint; { Zeilen, die vom Dokument bersprungen wurden (alle, die schon weggescrollt wurden) } + SwitchToNormal: boolean; { Soll ich nach dem nchsten '>' in die Normalfarbe wechseln? } + +procedure SetPrefs; { Voreinstellungen festlegen } +begin + ViewTags := false; + ShowCols := true; + WordWrap := false; + ConvEntit:= true; + Color_Normal := 11; + Color_Comments := 7; + Color_Bold := 14; + Color_Italic := 15; + Color_Underlined := 13; + Color_Anchor := 12; + Color_Font := 10; +end; + +procedure About; { Der Kommentar, der bei fehlendem Parameter ausgegeben wird } +begin + WriteLogo; + TextColor(15); + WriteLn('-= HTML Viewer =-'); + WriteLn; + TextColor(7); + WriteLn('Entfernt HTML-Tags aus Dateien und zeigt sie an.'); + WriteLn('Geschrieben von RoboCop of nOOb'); + WriteLn; + WriteLn('Dies ist noch die ''dumme'' Version. Sie entfernt alles, was zwischen'); + WriteLn('< und > steht. Eine intelligente Version wird auch noch folgen!'); + WriteLn; + WriteLn('Syntax: '+ParamStr(0)+' '); + Halt +end; + +procedure UpdateStatus; { Schreibt Statusleiste } +begin + WriteStatusItem( 1,'Hilfe'); + if ViewTags then WriteStatusItem(2,'k.Tags') else WriteStatusItem(2,'Tags'); + if ShowCols then WriteStatusItem(3,'k.Farb') else WriteStatusItem(3,'Farben'); + if WordWrap then WriteStatusItem(4,'k.Wrap') else WriteStatusItem(4,'Wrap'); + if ConvEntit then WriteStatusItem(5,'Entity') else WriteStatusItem(5,'Umlaut'); + WriteStatusItem( 6,''); + WriteStatusItem( 7,''); + WriteStatusItem( 8,''); + WriteStatusItem( 9,''); + WriteStatusItem(10,'Ende'); { Hier nur 5 Zeichen verwutzen, da sonst die Statusleiste eins hher rutscht } +end; + +function IsCloseTag(T: string): boolean; { Prft, ob T ein Schlie-Tag ist und gibt je nachdem TRUE oder FALSE zurck } +var C3: string[3]; + C4: string[4]; + C5: string[5]; +begin + C3 := Left(T,3); + C4 := Left(T,4); + C5 := Left(T,5); + if ( (C3='-->') + or (C4='') + or (C4='') + or (C4='') + or (C4='') + or (C5='4 then PART := Mid(Temp,i,5); + C3 := Mid(Temp,i,3); + C4 := Mid(Temp,i,4); + if IsCloseTag(PART) then SwitchToNormal:=true; + if C3='' then MakeColor:=Color_Bold + else if C3='' then MakeColor:=Color_Italic + else if C3='' then MakeColor:=Color_Underlined + else if C3='' } + t:=true; { Ja, es ist ein Tag } + if ShowCols then nc:=MakeColor(Temp,i) else nc:=0; { Wenn Farben AN, dann Tag-Farbe --> nc } + end; + if ((not t) and ((lc<=80) or (WordWrap))) then begin { Wenn kein Tag und Ausgegebene Zeichen noch nicht 80 } + Write(si); { mom. Zeichen ausgeben } + Inc(lc); { Ausgegebene Zeichen += 1 } + end else if ((ViewTags) and ((lc<=80) or (WordWrap))) then begin { sonst, wenn Tags AN und Ausg. Z. noch nicht 80 } + if ((not SwitchToNormal) and (nc<>0)) then TextColor(nc); { Wenn nicht SwitchToNormal und new color != 0, dann TC=nc } + Write(si); { mom. Zeichen ausgeben } + Inc(lc); { Ausgegebene Zeichen += 1 } + end; + if ((si='>') or (Mid(Temp,i-3,3)='!--')) then begin { Wenn Zeichen == '>' oder die letzten 3 == '!--' } + t := false; { Nein, es ist kein Tag mehr } + if nc<>0 then TextColor(nc); { Wenn new color != 0, dann TC=nc } + if SwitchToNormal then begin { Wenn SwitchToNormal } + SwitchToNormal := false; { Nee, kein SwitchToNormal mehr, einmal reicht } + TextColor(Color_Normal); { Textfarbe auf Normal } + end; + end; + end; + if WhereX<>1 then for i:=WhereX to 80 do Write(' '); { Rest der Zeile mit Leerzeichen auffllen } +end; + +procedure RebuildScreen; { Schreibt den Bildschirm neu - OHNE CLRSCR } +var i,j: integer; +begin + window(1,2,80,25); + TextBackground(1); + TextColor(11); + GotoXY(1,1); + for i:=1 to 23 do begin + if Screen[i]<>'' then WriteLine(Screen[i]); + end; + for i:=WhereY to 23 do for j:=1 to 80 do Write(' '); + window(1,1,80,25); +end; + +procedure ShowData; { Liest Datei ein } +var Temp: string; + i: integer; +begin + window(1,2,80,24); + TextColor(11); + TextBackground(1); + while not Eof(HTMLFile) do begin + ReadLn(HTMLFile,Temp); + Inc(i); + if i>23 then begin + ShiftScreen; + Screen[23]:=Temp; + end; + WriteLine(Temp); + end; + window(1,1,80,25); +end; + +procedure WaitForInput; { Wartet auf Eingabe und fhrt je nach Taste verschiedene Operationen aus } +label ExitWFI, Again; +begin +Again: + IK := ReadKey; + case IK of + #000: begin { Funktionstaste oder Sondertaste erwischt! } + IK := ReadKey; + case IK of + #059: ShowAbout; { F1 } + #060: if ViewTags then ViewTags := false else ViewTags := true; { F2 } + #061: if ShowCols then ShowCols := false else ShowCols := true; { F3 } + #062: if WordWrap then WordWrap := false else WordWrap := true; { F4 } + #063: if ConvEntit then ConvEntit := false else ConvEntit := true; { F5 } + #068: goto ExitWFI; { F10 } + end; + end; + #027: goto ExitWFI; { ESC } + else Sound(1200); Delay(100); NoSound; { andere Taste } + end; + UpdateStatus; + RebuildScreen; + goto Again; +ExitWFI: +end; + +begin + if ParamCount=0 then About; + OpenHTML; { Datei ffnen } + SetPrefs; { Voreinstellungen setzen } + MakeScreen; { Bildschirm aufbauen } + UpdateStatus; { Statuszeile aufbauen } + CursorOff; { Weg mit dem Blinker } + ShowData; { Daten anzeigen } + WaitForInput; { Auf Taste warten } + Close(HTMLFile); { Datei schlieen } + window(1,1,80,25); { WINDOW wieder setzen } + TextColor(7); { Alte DOS-Farben } + TextBackground(0); { wiederherstellen } + ClrScr; { Bildschirm nochmal lschen - LETZTE LUNG } + CursorOn; { Und Cursor wieder rumblinken lassen - Elektro Schocks} +end. diff --git a/INIFILET.PAS b/INIFILET.PAS new file mode 100644 index 0000000..72f91ba --- /dev/null +++ b/INIFILET.PAS @@ -0,0 +1,120 @@ +program INIFile_Test; + +uses Crt, INIFile; + +const Heading=15; + Struct =9; + Files =11+blink; + Descr =10; + Values =14; + Quest =10; + +begin + ClrScr; + INIFileDebug := False; + OpenINI('C:\WINNT\SYSTEM.INI'); + TextColor(Struct); Write(' '); + TextColor(Heading); + WriteLn('Einige Informationen ber Ihre FENSTER ....'); + TextColor(Struct); WriteLn(''); Write(' '); + TextColor(Files); + WriteLn('SYSTEM.INI'); + +{ Computer-Typ } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Computer-Typ: '); + TextColor(Values); WriteLn(INIGet('boot.description','system.drv')); + +{ Maus } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Maus : '); + TextColor(Values); WriteLn(INIGet('boot.description','mouse.drv')); + +{ Grafikkarte } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Grafikkarte : '); + TextColor(Values); WriteLn(INIGet('boot.description','display.drv')); + +{ Tastatur } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Tastatur : '); + TextColor(Values); WriteLn(INIGet('boot.description','keyboard.typ')); + + CloseINI; + OpenINI('C:\WINNT\WIN.INI'); + TextColor(Struct); Write(' '); + TextColor(Files); + WriteLn('WIN.INI'); + +{ Land } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Land : '); + TextColor(Values); WriteLn(INIGet('intl','sCountry')); + +{ Whrung } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Whrung : '); + TextColor(Values); WriteLn(INIGet('intl','sCurrency')); + +{ Standard-Drucker } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Std.-Drucker: '); + TextColor(Values); WriteLn(INIGet('windows','device')); + +{ Hintergrund-Bild } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('HG-Bild : '); + TextColor(Values); WriteLn(INIGet('Desktop','Wallpaper')); + + CloseINI; + OpenINI('C:\WINDOWS\SYSTEM\OEMINFO.INI'); + TextColor(Struct); Write(' '); + TextColor(Files); + WriteLn('OEMINFO.INI'); + +{ Computer-Modell } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Computer-Typ: '); + TextColor(Values); WriteLn(INIGet('general','Model')); + +{ Hersteller } + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Hersteller : '); + TextColor(Values); WriteLn(INIGet('general','Manufacturer')); + +{ Support Informationen } + TextColor(Struct); Write(' '); + TextColor(Files); WriteLn('Support Informationen'); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile1: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line1'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile2: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line2'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile3: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line3'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile4: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line4'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile5: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line5'),1,63)); + + TextColor(Struct); Write(' '); + TextColor(Descr); Write('Zeile6: '); + TextColor(Values); WriteLn(Copy(INIGet('Support Information','Line6'),1,63)); + + CloseINI; + WriteLn; + TextColor(Quest); + Write('Bitte Taste drcken .... '); + ReadKey; + WriteLn('danke!'); + TextColor(7); +end. \ No newline at end of file diff --git a/ITG/AUGENZ.PAS b/ITG/AUGENZ.PAS new file mode 100644 index 0000000..74b01b7 --- /dev/null +++ b/ITG/AUGENZ.PAS @@ -0,0 +1,53 @@ +program Augensumme; + +uses Crt; + +const p: char='|'; + +var A: array[1..12] of longint; + n: longint; + +procedure Progress; +begin + case p of + '|': p:='/'; + '/': p:='-'; + '-': p:='\'; + '\': p:='|'; + end; + GotoXY(WhereX-1,WhereY); + Write(p); +end; + +procedure Calc; +var x: byte; +begin + x := Random(6)+Random(6)+2; + Inc(A[x]); + Inc(A[1]); +end; + +procedure Auswertung; +var x: byte; +begin + for x:=2 to 12 do begin + WriteLn(x:2,' Augen: ',A[x]:7,' Treffer = ',(A[x]/A[1])*100:6:2,'%'); + end; +end; + + +begin + WriteLn('<====*====>'); + Write('Drcken Sie eine Taste, um den Versuch zu beenden. '); + repeat + Calc; + if A[1]/50000=A[1] DIV 50000 then Progress; + until keypressed; + ReadKey; + GotoXY(WhereX-1,WhereY); WriteLn(' '); + WriteLn; + Auswertung; + WriteLn; + WriteLn('Bitte eine Taste drcken'); + ReadKey; +end. \ No newline at end of file diff --git a/ITG/AUSFLUG.PAS b/ITG/AUSFLUG.PAS new file mode 100644 index 0000000..994fdb5 --- /dev/null +++ b/ITG/AUSFLUG.PAS @@ -0,0 +1,76 @@ +program Bahnausflug; + +{ Ein Club plant einen Ausflug mit einer Privatbahn. Dort kostet ein + Tarifkilometer 20 Pf und bei Gruppenreisen hat jeder 6. Reisende eine + Freifahrt. Es ist ein Programm zu schreiben, da die Fahrtkosten pro + Person fr eine beliebige Anzahl von Reisenden und Kilometern ermittelt, + wobei die Gesamtkosten auf alle Teilnehmer gleichmig umgelegt werden. } + +uses Crt,VFx; + +const money=0.20; + +var people,km: longint; + + +procedure Init; +var mon: string; +begin + TextBackground(0); + ClrScr; + DrawBorder(40,12,15,1,5); + FXWriteC('-=+ Bahnkostenberechnung +=-',14); + WriteLn; + TextColor(10); + Str(money:0:2,mon); + WriteCLn('Der Preis pro Tarifkilometer betrgt '+mon+' DM.'); + TextColor(11); + WriteLn; + ReadyBeep; +end; + +procedure GetData; +begin + Write('Okay, wieviel Leutchens sollen''s denn werden? '); + ReadLn(people); + AckBeep; + if people=1 then Write('Und wieviel Kilometer will diese Person fahren? ') + else Write('Und wieviel Kilometer wollen diese ',people,' Personen fahren? '); + ReadLn(km); + WriteLn; + AckBeep; +end; + +procedure PrintData; +var freepeople,restpeople: longint; + geldges,geldpro: extended; +begin + TextColor(15); + freepeople := people div 6; + case freepeople of + 0: CWriteLn('Es fhrt niemand kostenlos! %%12#(NICHTS IST UMSONST!!)%%15#'); + 1: WriteLn('Es fhrt eine Person kostenlos.'); + else + WriteLn('Es fahren ',freepeople:0,' Personen kostenlos.'); + end; + restpeople := people - freepeople; + if restpeople=1 then Write('Und diese eine Person mu ') + else Write('Und ',restpeople,' der ',people,' Personen mssen insgesamt '); + geldges := restpeople * km * money; + WriteLn(geldges:0:2,' DM hinblttern.'); + geldpro := km * money; + if restpeople>1 then WriteLn('Das heit, jeder mu ',geldpro:0:2,' DM hinlegen.'); + WriteLn; + TextColor(7); + WriteLn('Vielen Dank, da Sie dieses Program benutzt haben.'); + WaitBeep; + WriteLn; + CWriteLn('%%142#=== Drcken Sie eine Taste! ===%%7#'); + ReadKey; +end; + +begin + Init; + GetData; + PrintData; +end. \ No newline at end of file diff --git a/ITG/BINSRCH.PAS b/ITG/BINSRCH.PAS new file mode 100644 index 0000000..fcc3777 --- /dev/null +++ b/ITG/BINSRCH.PAS @@ -0,0 +1,24 @@ +function bin_searchrekursiv(left, right, key: word): word; +var x: word; +begin + if left>right then bin_searchrekursiv:=0 + else begin + x := (left+right) DIV 2; + if key < F[x] then bin_searchrekursiv(left, x-1, key) + else if key > F[x] then bin_searchrekursiv(x+1,right, key) + else bin_searchrekursiv := x; + end; +end; + +function bin_searchiterativ(key: word): word; +var left, right, x: word; +begin + left := 1; + right := max; + repeat + x := (left + right) DIV 2; + if keyright); + if key=F[x] then bin_searchiterativ := x; + else bin_searchiterativ := 0; +end; diff --git a/ITG/CODING.PAS b/ITG/CODING.PAS new file mode 100644 index 0000000..d08f745 --- /dev/null +++ b/ITG/CODING.PAS @@ -0,0 +1,66 @@ +program Coding; + +uses Crt; + +const satz='ICH BIN HIER UND DU BIST DA! NUN BIN ICH DA UND DU BIST HIER. BLI BLA BLO BL '; + +var A: array[1..40,1..40] of char; + + +procedure Init; +var i,j: byte; +begin + TextMode(co80+Font8x8); + for i:=1 to 40 do begin + for j:=1 to 40 do begin + A[i,j] := ' '; + end; + end; +end; + +procedure Ausgabe; +var i,j: byte; +begin + for i:=1 to 40 do begin + for j:=1 to 40 do begin + GotoXY(j,i); + Write(A[j,i]); + end; + end; + ReadKey; +end; + +procedure Code(x: string); +var i,j: byte; +begin + Randomize; + for j:=1 to 40 do begin + A[j,j] := x[j]; + A[41-j,j] := x[40+j]; + end; + for i:=1 to 40 do begin + for j:=1 to 40 do begin + if A[i,j]=' ' then A[i,j]:=Chr(65+Random(26)); + end; + end; +end; + +procedure Decode; +var i: byte; +begin + ClrScr; + for i:=1 to 40 do begin + GotoXY(i,1); + Write(A[i,i]); + GotoXY(40+i,1); + Write(A[41-i,i]); + end; +end; + +begin + Init; + Ausgabe; + Code(satz); + Ausgabe; + Decode; +end. diff --git a/ITG/DISTANCE.PAS b/ITG/DISTANCE.PAS new file mode 100644 index 0000000..31f1644 --- /dev/null +++ b/ITG/DISTANCE.PAS @@ -0,0 +1,402 @@ +program Distances; { Autor: Markus Birth } + +uses Crt, Graph, GUI; + +type ttabelle = array[1..10,1..10] of word; + cityrec = record + x: integer; + y: integer; + n: string[20]; + end; + xyrec = record + x: integer; + y: integer; + end; + +const tabelle: ttabelle=(( 0,530,555,289,378,370,569,584,616,596), + (530, 0,249,385,207,478, 68,638,700,513), + (555,249, 0,495,193,588,189,395,457,294), + (289,385,495, 0,307, 93,422,782,844,777), + (378,207,193,307, 0,400,249,482,544,475), + (370,478,588, 93,400, 0,515,875,937,870), + (569, 68,189,422,249,515, 0,578,640,453), + (584,638,395,782,482,875,578, 0,179,139), + (616,700,457,844,544,937,640,179, 0,310), + (596,513,294,777,475,870,453,139,310, 0)); + + map: array[1..52] of xyrec=((x:33;y: 4),(x:36;y: 5),(x:37;y: 5), + (x:38;y: 7),(x:40;y: 7),(x:41;y: 8), + (x:37;y:13),(x:41;y:14),(x:41;y:22), + (x:42;y:23),(x:41;y:24),(x:40;y:24), + (x:30;y:29),(x:33;y:33),(x:38;y:37), + (x:38;y:40),(x:35;y:42),(x:37;y:46), + (x:32;y:45),(x:27;y:46),(x:22;y:46), + (x:21;y:47),(x:16;y:45),(x:10;y:47), + (x: 8;y:46),(x: 9;y:40),(x:12;y:38), + (x: 3;y:33),(x: 2;y:30),(x: 4;y:28), + (x: 1;y:25),(x: 3;y:21),(x: 2;y:19), + (x: 4;y:18),(x: 7;y:15),(x: 5;y:14), + (x: 7;y:11),(x: 6;y: 9),(x: 8;y: 8), + (x: 9;y: 7),(x:12;y: 7),(x:14;y: 8), + (x:15;y: 6),(x:17;y: 6),(x:18;y: 1), + (x:22;y: 2),(x:23;y: 7),(x:28;y: 6), + (x:27;y: 8),(x:28;y:10),(x:31;y: 6), + (x:33;y: 4)); + mapfact: xyrec = (x:7;y:7); + citycount: byte=10; + city: array[1..10] of cityrec=((x:36;y:16;n:'Berlin'), + (x: 7;y:23;n:'Essen'), + (x:15;y:31;n:'Frankfurt am Main'), + (x:23;y:12;n:'Hamburg'), + (x:18;y:22;n:'Kassel'), + (x:24;y: 9;n:'Kiel'), + (x: 8;y:27;n:'Kln'), + (x:27;y:43;n:'Mnchen'), + (x:36;y:40;n:'Passau'), + (x:20;y:41;n:'Ulm')); + desktopcolor=3; + +var xmax, ymax, xmed, ymed: word; + cityrp: array[1..10] of xyrec; + WP: array[1..50] of byte; + WPuptodate: boolean; + buttondown: boolean; + +{ V2S(x) - Liefert angegebenen Word-Wert als String mit 3 Stellen + Input: word + Output: string } +function V2S(x: word): string; +var tmp: string; +begin + Str(x:3,tmp); + V2S := tmp; +end; + +{ Dist(c1,c2) - Liefert Entfernung zwischen Stdteindizes c1 und c2 + Input: byte, byte + Output: integer } +function Dist(wp1,wp2: byte): integer; +begin + Dist := tabelle[wp1,wp2]; +end; + +{ WPmax - Liefert Index des letzten Wegpunktes im WP-Array + Input: none + Output: byte } +function WPmax: byte; +var i: byte; +begin + for i:=1 to 50 do if (WP[i]=255) then WPmax := i-1; +end; + +{ UpdateDist - Refreshed die Entfernungsanzeige + Input: none + Output: none } +procedure UpdateDist; +var i: byte; + dst: integer; + dis: string; +begin + dst := 0; + if (WPmax>1) then for i:=1 to WPmax-1 do begin + dst := dst + Dist(WP[i],WP[i+1]); + end; + SetFillStyle(SolidFill,7); + SetColor(0); + Bar(53,398,247,457); + SetViewPort(53,398,247,457,ClipOn); + SetTextStyle(TripleXFont,HorizDir,4); + SetTextJustify(RightText,CenterText); + Str(dst:4,dis); + dis := dis + ' km'; + OutTextXY(187,17,dis); + SetViewPort(0,0,639,479,ClipOff); +end; + +{ ShowGermany - Zeichnet/refreshed die Deutschlandkarte + Input: none + Output: none } +procedure ShowGermany; +const xd=7; + yd=22; +var k,x,y: integer; +begin + Frame(8,26,312,362,0,0,7,1,false); + SetColor(15); + for k:=1 to 51 do line((map[k].x*mapfact.x)+xd,(map[k].y*mapfact.y)+yd,(map[k+1].x*mapfact.x)+xd,(map[k+1].y*mapfact.y)+yd); + SetTextJustify(CenterText,TopText); + SetTextStyle(SmallFont,HorizDir,4); + for k:=1 to 10 do begin + x:=city[k].x*mapfact.x+xd; + y:=city[k].y*mapfact.y+yd; + cityrp[k].x:=x; + cityrp[k].y:=y; + PutPixel(x,y,15); + PutPixel(x+1,y,7); + PutPixel(x-1,y,7); + PutPixel(x,y-1,7); + PutPixel(x,y+1,7); + PutPixel(x-1,y-1,8); + PutPixel(x-1,y+1,8); + PutPixel(x+1,y-1,8); + PutPixel(x+1,y+1,8); + if (WP[1]=k) then SetColor(10) + else if (WP[WPmax]=k) then SetColor(12) + else SetColor(11); + OutTextXY(x+2,y+2,city[k].n); + if (WP[WPmax]=k) OR (WP[1]=k) then OutTextXY(x+3,y+2,city[k].n); + end; +end; + +{ UpdatePath - Refreshed die Weglinien + Input: none + Output: none } +procedure UpdatePath; +var i: byte; +begin + ShowGermany; + MoveTo(cityrp[WP[1]].x,cityrp[WP[1]].y); + SetColor(9); + for i:=2 to WPmax do begin + if (i=WPmax) then SetColor(12); + LineTo(cityrp[WP[i]].x,cityrp[WP[i]].y); + end; +end; + +{ UpdateWP - Refreshed die Wegpunkte-Liste + Input: none + Output: none } +procedure UpdateWP; +var i: byte; +begin + if (NOT WPuptodate) then begin + SetFillStyle(SolidFill,7); + Bar(328,30,527,397); + SetViewPort(328,30,527,397,ClipOn); + SetColor(0); + for i:=1 to WPmax do begin + SetTextJustify(RightText,CenterText); + SetTextStyle(SmallFont,HorizDir,4); + OutTextXY(19,i*9-5,V2S(i)+'.'); + SetTextJustify(LeftText,CenterText); + OutTextXY(20,i*9-5,city[WP[i]].n); + OutTextXY(21,i*9-5,city[WP[i]].n); + SetTextJustify(RightText,CenterText); + SetTextStyle(SmallFont,HorizDir,4); + if i>1 then begin + OutTextXY(160,i*9-5,V2S(Dist(WP[i],WP[i-1]))); + end else begin + OutTextXY(160,i*9-5,'---'); + end; + Rectangle(167,i*9-8,192,i*9); + SetTextStyle(SmallFont,HorizDir,2); + SetTextJustify(CenterText,CenterText); + OutTextXY(179,i*9-5,'CLEAR'); + end; + SetViewPort(0,0,639,479,ClipOff); + UpdateDist; + UpdatePath; + WPuptodate := true; + end; +end; + +{ AddWP(x) - Hngt Wegpunkt bei Stadt x an das WP-Array an + Input: byte + Output: none } +procedure AddWP(what: byte); +var wpm: byte; +begin + wpm := WPmax; + if (wpm+1>1) then begin + if (WP[wpm]<>what) then begin + if (wpm<49) then begin + WP[wpm+1] := what; + WP[wpm+2] := 255; + WPuptodate:=false; + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + end; + end else begin + WP[1] := what; + WP[2] := 255; + WPuptodate:=false; + end; + UpdateWP; +end; + +{ RemoveWP(x) - Entfernt den Wegpunkt mit Index x aus WP + Input: byte + Output: none } +procedure RemoveWP(which: byte); +var i: byte; +begin + for i:=which to 49 do WP[i] := WP[i+1]; + WPuptodate:=false; + UpdateWP; +end; + +{ Init - Alles, was initialisiert werden mu, grundlegende Vardefs + Input: none + Output: none } +procedure Init; +var grDriver, grMode: integer; + BGIPath: string; +begin + grDriver := VGA; + grMode := VGAHi; + initp_del := 30; + BGIPath := 'D:\BP\BGI\'; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + WP[1] := 255; + WPuptodate := false; + buttondown := false; + om := 0; + SetTextStyle(DefaultFont,HorizDir,1); + SetTextJustify(LeftText,TopText); + SetFillStyle(SolidFill,desktopcolor); + Bar(0,0,xmax-1,ymax-1); + ClearStatus; +end; + +{ Outit - Alles, um wieder auf Normalwerte zu kommen ... + Input: none + Output: none } +procedure Outit; +var i,ad,wpm: integer; +begin + wpm := WPmax; + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + if wpm>1 then begin + ad := 0; + Write('Strecke: '); + for i:=1 to wpm do begin + if (i>1) then Write(', ',city[WP[i]].n) else Write(city[WP[i]].n); + if (i1) then WriteLn(' Viel Vergngen in ',city[WP[wpm]].n,'!') else WriteLn; +end; + +{ StartScreen - Zeichnet Anfangs-Logo und nach Tastendruck den Mainscreen + Input: none + Output: none } +procedure StartScreen; +begin + MakeWindow(120,140,520,340,'Entfernungstabelle'); + SetViewPort(123,161,517,337,ClipOn); + SetColor(9); + SetTextStyle(TripleXFont,HorizDir,10); + SetTextJustify(CenterText,CenterText); + OutTextXY(200,24,'GUI'); + OutTextXY(200,26,'GUI'); + OutTextXY(199,25,'GUI'); + OutTextXY(201,25,'GUI'); + SetTextStyle(SansSerifFont,HorizDir,2); + OutTextXY(200,100,'GRAPHICAL USER INTERFACE'); + SetColor(0); + SetTextStyle(SmallFont,HorizDir,5); + OutTextXY(200,165,'geschrieben von Markus Birth '); + SetTextStyle(SmallFont,VertDir,4); + SetTextJustify(CenterText,TopText); + SetColor(8); + OutTextXY(385,2,'(c)1999 Web - Writers'); + SetColor(0); + SetTextStyle(DefaultFont,HorizDir,1); + OutTextXY(200,140,'Initialisiere Farbpalette ...'); + Delay(1000); + InitPalette; + SetFillStyle(SolidFill,7); + Bar(0,130,400,150); + SetTextStyle(DefaultFont,HorizDir,1); + SetViewPort(0,0,639,479,ClipOff); + Status('Bitte drcken Sie irgendeine Taste (Maus oder Tastatur)'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + StatusTime(false); + until (keypressed) OR (mb<>0); + if keypressed then ReadKey; + ShowMouse(false); + SetFillStyle(SolidFill,desktopcolor); + Bar(120,140,520,340); + ClearStatus; + SetTextStyle(SmallFont,HorizDir,4); + SetColor(15); + OutTextXY(570,440,'Beenden durch Drcken'); + OutTextXY(570,448,'einer Taste oder beider'); + OutTextXY(570,456,'Maustasten gleichzeitig.'); + MakeWindow(325,5,530,400,'Wegpunkte'); + MakeWindow(50,370,250,460,'Entfernung'); + MakeWindow(5,5,315,365,'Deutschlandkarte'); +end; + +{ CheckMouse - berprfung der Mausposition und evtl. Subroutinen-Ausfhrung + Input: none + Output: none } +procedure CheckMouse; +var i: byte; + over: boolean; + nst: string; +begin + if (mb<>0) then begin + if (NOT buttondown) then ShowMouse(false); + end else buttondown:=false; + over := false; + (* if (mb=0) then Status('X:'+V2S(mx)+' Y:'+V2S(my)); *) + for i:=1 to 10 do begin + if MouseOver(cityrp[i].x-5,cityrp[i].y-5,cityrp[i].x+5,cityrp[i].y+5) then begin + nst:=city[i].n+' (Klicken, um in Wegliste einzufgen)'; + if (oldstat<>nst) then Status(nst); + over := true; + if (mb=1) AND (NOT buttondown) then begin + AddWP(i); + buttondown:=true; + end; + end; + end; + for i:=1 to WPmax do begin + if MouseOver(495,22+i*9,520,30+i*9) then begin + nst:='Klicken, um '+city[WP[i]].n+' aus der Wegliste zu entfernen'; + if (oldstat<>nst) then Status(nst); + over := true; + if (mb=1) AND (NOT buttondown) then begin + RemoveWP(i); + buttondown:=true; + end; + end; + end; + if (NOT over) AND (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +begin + Mousereset; + Init; + StartScreen; + ShowGermany; + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckMouse; + until (keypressed) OR (mb=3); + if (keypressed) then ReadKey; + FadeOut; + Outit; +end. diff --git a/ITG/DREIECK.PAS b/ITG/DREIECK.PAS new file mode 100644 index 0000000..c9d1228 --- /dev/null +++ b/ITG/DREIECK.PAS @@ -0,0 +1,64 @@ +program Dreiecke; + +uses Crt; + +var a,b,c: real; + +procedure GetData; +begin + Write('Geben Sie die Lnge der Seite a ein: '); ReadLn(a); + Write('Und nun Seite b: '); ReadLn(b); + Write('Und jetzt noch c: '); ReadLn(c); + WriteLn('Danke!'); +end; + +function ProoveANG(x,y,z: real): boolean; +var j,k: real; +begin + j := Sqr(x); + k := Sqr(y); + if j+k>Sqr(z) then ProoveANG:=true else ProoveANG:=false; +end; + +function ProovePYT(x,y,z: real): boolean; +var j,k: real; +begin + j := Sqr(x); + k := Sqr(y); + if j+k=Sqr(z) then ProovePYT:=true else ProovePYT:=false; +end; + +function Gleichseitig: boolean; +begin + if ((a=b) AND (b=c)) then Gleichseitig:=true else Gleichseitig:=false; +end; + +function Gleichschenklig: boolean; +begin + if ((a=b) OR (b=c) OR (a=c)) then Gleichschenklig:=true else Gleichschenklig:=false; +end; + +function Rechtwinklig: boolean; +begin + if ((ProovePYT(a,b,c)) OR (ProovePYT(b,c,a)) OR (ProovePYT(a,c,b))) then Rechtwinklig:=true + else Rechtwinklig:=false; +end; + +function Spitzwinklig: boolean; +begin + if ((ProoveANG(a,b,c)) AND (ProoveANG(b,c,a)) AND (ProoveANG(a,c,b))) then Spitzwinklig:=true + else Spitzwinklig:=false; +end; + +begin + ClrScr; + GetData; + WriteLn; + if Gleichseitig then WriteLn('Das Teil ist gleichseitig!'); + if Gleichschenklig then WriteLn('Das Ding ist gleichschenklich!!'); + if Rechtwinklig then WriteLn('Und rechtwinklig ist es auch noch!'); + if Spitzwinklig then WriteLn('Spitzwinklig ist es! Ja, Spitzwinklig!'); + WriteLn; + WriteLn('Ich habe dem nix hinzuzufgen!'); + WriteLn('Fertich, Meister!'); +end. \ No newline at end of file diff --git a/ITG/EXPLODER.PAS b/ITG/EXPLODER.PAS new file mode 100644 index 0000000..3dacc31 --- /dev/null +++ b/ITG/EXPLODER.PAS @@ -0,0 +1,175 @@ +program Exploder; + +{ + #016 > filled + #017 < filled + +} + +uses Crt, DOS, Numbers, VFx; + +const StartPath='.\'; + +var cur: SearchRec; + + +procedure Init; +begin + TextMode(co80 + Font8x8); + TextBackground(0); + TextColor(7); +end; + +procedure SWindow(x1,y1,x2,y2: integer; fg, bg: byte; BType: byte); +var i,j: integer; + Border: string[8]; +begin + if BType=1 then Border := 'ڿٳ'; + if BType=2 then Border := 'ɻȼ'; + if BType=3 then Border := 'ոԾ'; + if BType=4 then Border := 'ַӽ'; + if BType=5 then Border := ''; + if BType=6 then Border := 'ڷԼ'; + DWrite(x1,y1,fg,bg,Border[1]); + DWrite(x2,y1,fg,bg,Border[2]); + DWrite(x1,y2,fg,bg,Border[3]); + DWrite(x2,y2,fg,bg,Border[4]); + for i:=y1+1 to y2-1 do begin + DWrite(x1,i,fg,bg,Border[5]); + DWrite(x2,i,fg,bg,Border[6]); + end; + for i:=x1+1 to x2-1 do begin + DWrite(i,y1,fg,bg,Border[7]); + DWrite(i,y2,fg,bg,Border[8]); + end; + for i:=x1+1 to x2-1 do + for j:=y1+1 to y2-1 do begin + DWrite(i,j,fg,bg,' '); + end; +end; + +procedure TurnAround(var x: string); +var i: integer; + tmp: string; +begin + tmp := ''; + for i:=Length(x) downto 1 do begin + tmp := tmp + x[i]; + end; + x := tmp; +end; + +function GetName(x: string): string; +var i: byte; + it: boolean; +begin + it := false; + if (x[1]='.') then begin + GetName:=x; + Exit; + end; + for i:=1 to Length(x) do + if x[i]='.' then begin + GetName := Copy(x,1,i-1); + it := true; + end; + if NOT it then GetName := x; +end; + +function GetExt(x: string): string; +var i: byte; + it: boolean; +begin + it := false; + for i:=1 to Length(x) do + if x[i]='.' then begin + GetExt := Copy(x,i+1,Length(x)-i); + it := true; + end; + if NOT it then GetExt := ''; +end; + + +function Fill(x: string): string; +var i: byte; + tmp: string; +begin + tmp := ''; + for i:=Length(GetName(x))+1 to 8 do tmp := tmp + ' '; + Fill := tmp; +end; + +function Fill2(x: string): string; +var i: byte; + tmp: string; +begin + tmp := ''; + for i:=Length(GetExt(x))+1 to 3 do tmp := tmp + ' '; + Fill2 := tmp; +end; + + +{ Attribute list in binary + + 1st ReadOnly + 2nd Hidden + 3rd System + 4th VolumeID + 5th Directory + 6th Archive + 7th AnyFile } + +procedure Add(var x: string; y: string); +begin + x := x + y; +end; + +procedure WriteFile(f: SearchRec); forward; + +procedure List; +var binattr: string; + strattr: string; +begin +{ ChDir(StartPath); } + FindFirst('*.*',AnyFile,cur); + while DosError<>18 do begin + binattr := Dec2Bin(cur.attr); + TurnAround(binattr); + if (binattr[5]='1') then TextColor(15) + else if (binattr[2]='1') then TextColor(8) + else if (binattr[3]='1') then TextColor(12) + else if (binattr[1]='1') then TextColor(10) + else if (binattr[4]='1') then TextColor(11) + else TextColor(7); + WriteFile(cur); + WriteLn; + FindNext(cur); + end; +end; + +procedure WriteFile(f: SearchRec); +var binattr: string; + strattr: string; +begin + binattr := Dec2Bin(cur.attr); + TurnAround(binattr); + strattr := ''; + if (binattr[5]='1') then Add(strattr,'D') else + if (binattr[4]='1') then Add(strattr,'V') else Add(strattr,'-'); + if (binattr[6]='1') then Add(strattr,'A') else Add(strattr,'-'); + if (binattr[1]='1') then Add(strattr,'R') else Add(strattr,'-'); + if (binattr[2]='1') then Add(strattr,'H') else Add(strattr,'-'); + if (binattr[3]='1') then Add(strattr,'S') else Add(strattr,'-'); + + Write(GetName(cur.name),Fill(cur.name),' ',GetExt(cur.name),Fill2(cur.name),''); + if (binattr[5]='1') then Write(#017,' DIR ',#016) else + if (binattr[4]='1') then Write(#017,' VOL ',#016) else Write(cur.size:7); + Write('',strattr); +end; + +begin + Init; + SWindow(1,1,80,50,15,1,2); + Window(3,2,78,49); + List; +end. diff --git a/ITG/FAKULT.PAS b/ITG/FAKULT.PAS new file mode 100644 index 0000000..6a4c93f --- /dev/null +++ b/ITG/FAKULT.PAS @@ -0,0 +1,27 @@ +program Fuck_ultaet; + +var which: integer; + +function Fak_Ite(m: integer): longint; +var i: integer; + tmp: longint; +begin + tmp := 1; + for i:=1 to m do begin + tmp := tmp * i; + end; + Fak_Ite := tmp; +end; + +function Fak_Rek(m: integer): longint; +begin + if m=1 then Fak_Rek := 1 else Fak_Rek := m * Fak_Rek(m-1); +end; + + +begin + WriteLn('======================'); + Write('Enter n: '); ReadLn(which); + WriteLn('Iterative: ',Fak_Ite(which)); + WriteLn('Recursive: ',Fak_Rek(which)); +end. \ No newline at end of file diff --git a/ITG/FENSTER1.PAS b/ITG/FENSTER1.PAS new file mode 100644 index 0000000..115ec28 --- /dev/null +++ b/ITG/FENSTER1.PAS @@ -0,0 +1,20 @@ +program Fenster1; + +uses crt; + +procedure Ueberschrift(Text:string; VF,HF: byte); +begin + window(1,1,80,1); + TextColor(VF); + TextBackground(HF); + ClrScr; + GotoXY(40-(length(Text) DIV 2),1); + Write(Text); +end; + +begin + TextBackground(0); + ClrScr; + Ueberschrift('Mal sehen was passiert, wenn die berschrift die Zeilenlnge sprengt Test Test',10,1); + ReadKey; +end. \ No newline at end of file diff --git a/ITG/FIBONACC.PAS b/ITG/FIBONACC.PAS new file mode 100644 index 0000000..a7cf21b --- /dev/null +++ b/ITG/FIBONACC.PAS @@ -0,0 +1,35 @@ +program Fibonacci; + +{ Die Fibonacci-Folge ist wie folgt aufgebaut: Jeder Wert wird aus der Summe + der zwei vorhergehenden Werte errechnet. Gegeben sind die ersten beiden + Zahlen: 0 und 1. + Der Anfang der Folge sieht so aus: 0,1,1,2,3,5,8,13,21,34,55,89,144,233, + 377,610,987,1597,2584,4181,6765,.... } + +uses crt; + +var i: integer; + +function Fibonacci_Loop(n: integer): longint; +var tmp,last1,last2,i: longint; +begin + last1:=0; last2:=0; tmp:=1; + if n>=2 then begin + for i:=1 to n do begin + tmp:=tmp+last2; last2:=last1; last1:=tmp; + end; + Fibonacci_Loop:=tmp; + end else Fibonacci_Loop:=n; +end; + +begin + TextMode(C80 + Font8x8); + Window(1,1,40,50); + for i:=0 to 48 do begin + WriteLn(Fibonacci_Loop(i)); + end; + Window(40,1,80,50); + for i:=49 to 97 do begin + WriteLn(Fibonacci_Loop(i)); + end; +end. \ No newline at end of file diff --git a/ITG/FIBONA_F.PAS b/ITG/FIBONA_F.PAS new file mode 100644 index 0000000..20ece5c --- /dev/null +++ b/ITG/FIBONA_F.PAS @@ -0,0 +1,35 @@ +program Fibonacci_FOR; + +{ Die Fibonacci-Folge ist wie folgt aufgebaut: Jeder Wert wird aus der Summe + der zwei vorhergehenden Werte errechnet. Gegeben sind die ersten beiden + Zahlen: 0 und 1. + Der Anfang der Folge sieht so aus: 0,1,1,2,3,5,8,13,21,34,55,89,144,233, + 377,610,987,1597,2584,4181,6765,.... } + +uses crt; + +var i: integer; + +function Fibonacci_Loop(n: integer): longint; +var tmp,last1,last2,i: longint; +begin + last1:=0; last2:=0; tmp:=1; + if n>=2 then begin + for i:=1 to n do begin + tmp:=tmp+last2; last2:=last1; last1:=tmp; + end; + Fibonacci_Loop:=tmp; + end else Fibonacci_Loop:=n; +end; + +begin + TextMode(C80 + Font8x8); + Window(1,1,40,50); + for i:=0 to 48 do begin + WriteLn(Fibonacci_Loop(i)); + end; + Window(40,1,80,50); + for i:=49 to 97 do begin + WriteLn(Fibonacci_Loop(i)); + end; +end. \ No newline at end of file diff --git a/ITG/FIBONA_R.PAS b/ITG/FIBONA_R.PAS new file mode 100644 index 0000000..8d97c57 --- /dev/null +++ b/ITG/FIBONA_R.PAS @@ -0,0 +1,33 @@ +program Fibonacci_rekursiv; + +{ Die Fibonacci-Folge ist wie folgt aufgebaut: Jeder Wert wird aus der Summe + der zwei vorhergehenden Werte errechnet. Gegeben sind die ersten beiden + Zahlen: 0 und 1. + Der Anfang der Folge sieht so aus: 0,1,1,2,3,5,8,13,21,34,55,89,144,233, + 377,610,987,1597,2584,4181,6765,.... } + +uses crt; + +var take: integer; + +procedure Fibonacci_Recursive(a,b: longint); +begin + Inc(take); + WriteLn(a:10); + if take<47 then Fibonacci_Recursive(b,a+b); +end; + +function Fibo(a: integer): longint; +begin + if (a=1) OR (a=2) then Fibo := 1 + else if a=0 then Fibo := 0 + else Fibo := Fibo(a-1)+Fibo(a-2); +end; + + +begin + TextMode(C80 + Font8x8); + take := 0; + Fibonacci_Recursive(0,1); + WriteLn(Fibo(20)); +end. \ No newline at end of file diff --git a/ITG/GAUSS.PAS b/ITG/GAUSS.PAS new file mode 100644 index 0000000..b9e9298 --- /dev/null +++ b/ITG/GAUSS.PAS @@ -0,0 +1,66 @@ +program GAUSS; + +uses Crt; + +type GaRec=record + x: integer; + y: integer; + end; + +var n: integer; + P: array[1..500] of GaRec; + A: real; + +procedure Init; +var i: integer; +begin + for i:=1 to 500 do begin + P[i].x:=0; + P[i].y:=0; + end; +end; + +procedure Input; +var i: integer; + tmp,t2: string; +begin + i:=1; + repeat + Str(i:0,t2); + tmp := 'P'+t2+'('; + Write(tmp); + ReadLn(P[i].x); + Str(P[i].x:0,t2); + tmp := tmp+t2+'|'; + GotoXY(1,WhereY-1); + Write(tmp); + ReadLn(P[i].y); + Str(P[i].y:0,t2); + tmp := tmp+t2+')'; + GotoXY(1,WhereY-1); + WriteLn(tmp); + Inc(i); + until (P[i-1].x=P[1].x) AND (P[i-1].y=P[1].y) AND (i>2); + n := i-2; +end; + +procedure Calc; +var i: integer; +begin + A := 0; + for i:=1 to n do A := A + (P[i].x*P[i+1].y - P[i+1].x*P[i].y); + A := A / 2; +end; + +procedure Output; +begin + WriteLn; + WriteLn('Flcheninhalt: ',A:0:5,' quadratsonstwas'); +end; + +begin + Init; + Input; + Calc; + Output; +end. diff --git a/ITG/GEWICHT.PAS b/ITG/GEWICHT.PAS new file mode 100644 index 0000000..b52549d --- /dev/null +++ b/ITG/GEWICHT.PAS @@ -0,0 +1,39 @@ +{ Var Geschl:Char; +'Gre, Gewicht, Geschlecht angeben' +VAR Gr,Gew,Geschl eingeben +Geschl='m' ? +nein: Ideal := (gr-100)*0.9 + +ja: Ideal=(Gr-100)*0.95 + Gew <= Ideal*0.98 + Ja: 'Fliegengew' + Var Ideal ausgeben + Nein: Gew >= Ideal*1.02 + Ja: 'Alter Sack-zu schwer!' + VAR Ideal ausgeben + Nein: 'Gratulation' } + +program Gewicht; + +uses Crt; + +var Gr, Gew, Ideal: real; + Geschl: char; + +begin + Write('Gre: '); + ReadLn(Gr); + Write('Gewicht: '); + ReadLn(Gew); + Write('Geschlecht (m/w): '); + Geschl := ReadKey; + WriteLn(Geschl); + WriteLn; + if Geschl='m' then Ideal := (Gr-100)*0.95 else Ideal := (Gr-100)*0.9; + if Gew <= Ideal*0.98 then WriteLn('Fliegengewicht! Idealgewicht: ', Ideal:3:5) + else if Gew >= Ideal*1.02 then WriteLn('Alter Sack-zu schwer! Idealgewicht: ', Ideal:3:5) + else WriteLn('Gratulation!'); + WriteLn; + WriteLn('Bitte Taste drcken...'); + ReadKey; +end. \ No newline at end of file diff --git a/ITG/G_U_I.PAS b/ITG/G_U_I.PAS new file mode 100644 index 0000000..309ed2c --- /dev/null +++ b/ITG/G_U_I.PAS @@ -0,0 +1,335 @@ +program RekGUI; + +uses Crt, Graph, DOS, GUI, RekGraph; + +const desktopcolor=3; + skier_len: integer=120; + skier_edge: integer=10; + skier_globangle: integer=0; + skier_fixedinit: boolean=true; + haken_len: integer=150; + haken_angle: integer=45; + haken_globangle: integer=0; + haken_fixedinit: boolean=true; + quadrat_len: integer=150; + quadrat_angle: integer=90; + quadrat_globangle: integer=0; + quadrat_fixedinit: boolean=true; + spirale_len: integer=10; + spirale_angle: integer=25; + spirale_globangle: integer=0; + spirale_fixedinit: boolean=true; + +var xmax, ymax, xmed, ymed: word; + ExitAll, ExitSetupAll: boolean; + +procedure Init; +var grDriver, grMode: integer; + BGIPath: string; +begin + grDriver := VGA; + grMode := VGAHi; + initp_del := 30; + BGIPath := '..\..\BGI\'; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + om := 0; + ExitAll := false; + ExitSetupAll := false; + SetTextStyle(DefaultFont,HorizDir,1); + SetTextJustify(LeftText,TopText); + SetFillStyle(SolidFill,desktopcolor); + Bar(0,0,xmax-1,ymax-1); + ClearStatus; +end; + +procedure InitGraphs; +begin + skier_del := 50; + haken_del := 50; + quadrat_del := 100; + spirale_del := 50; +end; + +procedure Outit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +function V2S(x: byte): string; +var tmp: string; +begin + Str(x:3,tmp); + V2S := tmp; +end; + +procedure ShowSkier; +begin + globangle := skier_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(180,370); + Skier(skier_len,skier_edge); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure ShowHaken; +begin + globangle := haken_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Haken(haken_len,haken_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure ShowQuadrat; +begin + globangle := haken_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Quadrat(quadrat_len,quadrat_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + + +procedure ShowSpirale; +begin + globangle := spirale_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Spirale(spirale_len,spirale_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure Palette; +const tx=50; + ty=31; +var i,j: integer; +begin + for j:=1 to 16 do begin + SetTextJustify(RightText,CenterText); + SetColor(0); + OutTextXY(tx,ty+(j-1)*10+5,V2S((j-1)*16)); + for i:=0 to 15 do begin + SetFillStyle(SolidFill,(j-1)*16+i); + SetColor((j-1)*15+i); + Bar(tx+i*10,ty+(j-1)*10,tx+i*10+10,ty+(j-1)*10+10); + end; + SetTextJustify(LeftText,CenterText); + SetColor(0); + OutTextXY(tx+162,ty+(j-1)*10+5,V2S((j-1)*16+15)); + end; +end; + +procedure CheckSetupStat; +begin + if (mb<>0) then ShowMouse(false); + if MouseOver(15,405,525,425) then begin + Status('Hiermit wird die Konfiguration so gespeichert'); + case mb of + 1: begin + ExitSetupAll := true; + end; + end; + end else if MouseOver(527,405,625,425) then begin + Status('Hier geht''s nach Hause!'); + case mb of + 1: begin + MakeBeveledButton(527,405,625,425,'EXIT'); + ExitSetupAll:=true; + ExitAll:=true; + Delay(buttondelay); + MakeButton(527,405,625,425,'EXIT'); + Exit; + end; + end; + end else if (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +procedure SetupData; +var sx,sy,sb: integer; +begin + MakeWindow(10,10,630,430,'Konfiguration'); + MakeButton(15,405,525,425,'Einstellungen so bernehmen'); + MakeButton(527,405,625,425,'EXIT'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckSetupStat; + StatusTime(false); + until (mb=3) OR (ExitSetupAll); + if (mb=3) then ExitAll := true; + ShowMouse(false); +end; + +procedure BuildWindows; +begin + MakeWindow(10,10,500,400,'Hauptfenster'); + MakeWindow(505,10,600,400,'Optionen'); + MakeButton(510,385,595,395,'EXIT'); + MakeButton(510,373,595,383,'CLEAR'); + MakeButton(510,34,595,54,'Skierp.'); + MakeButton(510,56,595,76,'Haken'); + MakeButton(510,78,595,98,'Quadrat'); + MakeButton(510,100,595,120,'Spirale'); + MakeButton(510,350,595,371,'SETUP'); +end; + +procedure CheckStat; +begin + if (mb<>0) then ShowMouse(false); + if MouseOver(510,385,595,395) then begin + Status('Hier geht''s nach Hause!'); + case mb of + 1: begin + MakeBeveledButton(510,385,595,395,'EXIT'); + ExitAll:=true; + Delay(buttondelay); + MakeButton(510,385,595,395,'EXIT'); + Exit; + end; + end; + end else if MouseOver(510,373,595,383) then begin + Status('Damit wird das Hauptfenster gelscht!'); + case mb of + 1: begin + MakeBeveledButton(510,373,595,383,'CLEAR'); + SetFillStyle(SolidFill,7); + Bar(13,31,497,397); + Delay(buttondelay); + MakeButton(510,373,595,383,'CLEAR'); + end; + end; + end else if MouseOver(510,350,595,371) then begin + Status('Hier kann man die Einstellungen ndern!'); + case mb of + 1: begin + MakeBeveledButton(510,350,595,371,'SETUP'); + SetFillStyle(SolidFill,desktopcolor); + Bar(10,10,500,400); + Delay(buttondelay DIV 2); + Bar(505,10,600,400); + Delay(buttondelay DIV 2); + ExitSetupAll := false; + SetupData; + if NOT ExitAll then begin + SetFillStyle(SolidFill,desktopcolor); + Bar(10,10,630,430); + BuildWindows; + end; + end; + end; + end else if MouseOver(510,34,595,54) then begin + Status('Fr unsere Wintersportler!'); + case mb of + 1: begin + MakeBeveledButton(510,34,595,54,'Skierp.'); + ShowSkier; + Delay(buttondelay); + MakeButton(510,34,595,54,'Skierp.'); + end; + end; + end else if MouseOver(510,56,595,76) then begin + Status('Und das ist fr die Angler!'); + case mb of + 1: begin + MakeBeveledButton(510,56,595,76,'Haken'); + ShowHaken; + Delay(buttondelay); + MakeButton(510,56,595,76,'Haken'); + end; + end; + end else if MouseOver(510,78,595,98) then begin + Status('Sehen Sie schon viereckig?'); + case mb of + 1: begin + MakeBeveledButton(510,78,595,98,'Quadrat'); + ShowQuadrat; + Delay(buttondelay); + MakeButton(510,78,595,98,'Quadrat'); + end; + end; + end else if MouseOver(510,100,595,120) then begin + Status('Ist was verstopft?'); + case mb of + 1: begin + MakeBeveledButton(510,100,595,120,'Spirale'); + ShowSpirale; + Delay(buttondelay); + MakeButton(510,100,595,120,'Spirale'); + end; + end; + end else if (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +procedure StartScreen; +begin + MakeWindow(120,140,520,340,'Rekursive Grafikfunktionen'); + SetViewPort(123,161,517,337,ClipOn); + SetColor(9); + SetTextStyle(TripleXFont,HorizDir,10); + SetTextJustify(CenterText,CenterText); + OutTextXY(200,24,'GUI'); + OutTextXY(200,26,'GUI'); + OutTextXY(199,25,'GUI'); + OutTextXY(201,25,'GUI'); + SetTextStyle(SansSerifFont,HorizDir,2); + OutTextXY(200,100,'GRAPHICAL USER INTERFACE'); + SetColor(0); + SetTextStyle(SmallFont,HorizDir,5); + OutTextXY(200,165,'geschrieben von Markus Birth '); + SetTextStyle(SmallFont,VertDir,4); + SetTextJustify(CenterText,TopText); + SetColor(8); + OutTextXY(385,2,'(c)1999 Web - Writers'); + SetColor(0); + SetTextStyle(DefaultFont,HorizDir,1); + OutTextXY(200,140,'Initialisiere Farbpalette ...'); + Delay(1000); + InitPalette; + SetFillStyle(SolidFill,7); + Bar(0,130,400,150); + SetTextStyle(DefaultFont,HorizDir,1); + SetViewPort(0,0,639,479,ClipOff); + Status('Bitte drcken Sie irgendeine Taste (Maus oder Tastatur)'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + StatusTime(false); + until (keypressed) OR (mb<>0); + if keypressed then ReadKey; + ShowMouse(false); + SetFillStyle(SolidFill,desktopcolor); + Bar(120,140,520,340); +end; + +begin + Init; + InitGraphs; + StartScreen; + BuildWindows; + MouseReset; + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckStat; + StatusTime(false); + until (mb=3) OR (ExitAll); + ShowMouse(false); + FadeOut; + Outit; +end. diff --git a/ITG/HANOI.INI b/ITG/HANOI.INI new file mode 100644 index 0000000..f025059 --- /dev/null +++ b/ITG/HANOI.INI @@ -0,0 +1,21 @@ +[Hanoi_Main] +Items=5 + +[Hanoi_Board] +Board_X=600 +Board_Middle=400 +Board_Y=10 +Board_Color=10 + +[Hanoi_Poles] +Tower_X=10 +Tower_Color=12 + +[Hanoi_Coins] +Item_MaxX=130 +Item_MinX=35 +Item_Y=20 +Item_Color=14 + +[Hanoi_Texts] +Text_Color=15 diff --git a/ITG/HANOI.PAS b/ITG/HANOI.PAS new file mode 100644 index 0000000..45228bc --- /dev/null +++ b/ITG/HANOI.PAS @@ -0,0 +1,290 @@ +program Towers_of_Hanoi; + +uses Crt, Graph, INIFile, BGIP; + +const { Hmax=5; } + Gray50: FillPatternType=($AA, $55, $AA, $55, $AA, $55, $AA, $55); + Sound_ON=false; + +var xmax, ymax, xmed, ymed: word; + Code: integer; + Hanoi: array[1..3,1..100] of byte; + Item_X: array[1..100] of word; + Board_Up, Board_Down: word; + Tower_Y: word; + Input: char; + Mv_From, Mv_To: byte; + Step: longint; + tmp1,tmp2: string; + T_Center: array[1..3] of word; + Hmax: byte; + Board_X,Board_Middle,Board_Y: word; + Board_Color: byte; + Tower_X: word; + Tower_Color: byte; + Item_MaxX, Item_MinX, Item_Y: word; + Item_Color, Text_Color: byte; + +function V2S(x: longint): string; +var tmp: string; +begin + Str(x:0,tmp); + V2S := tmp; +end; + +function S2V(x: string): integer; +var tmp,code: integer; +begin + Val(x,tmp,code); + if (code<>0) then begin + WriteLn('Error while VAL ''',x,''': ',code); + Halt; + end else S2V:=tmp; +end; + +procedure Init; +var grDriver, grMode: integer; + i,j: byte; +begin + INIFileDebug := false; + OpenINI('D:\LANG\src\bp\itg\hanoi.ini'); + Hmax := S2V(INIGet('Hanoi_Main','Items')); + Board_X := S2V(INIGet('Hanoi_Board','Board_X')); + Board_Middle := S2V(INIGet('Hanoi_Board','Board_Middle')); + Board_Y := S2V(INIGet('Hanoi_Board','Board_Y')); + Board_Color := S2V(INIGet('Hanoi_Board','Board_Color')); + Tower_X := S2V(INIGet('Hanoi_Poles','Tower_X')); + Tower_Color := S2V(INIGet('Hanoi_Poles','Tower_Color')); + Item_MaxX := S2V(INIGet('Hanoi_Coins','Item_MaxX')); + Item_MinX := S2V(INIGet('Hanoi_Coins','Item_MinX')); + Item_Y := S2V(INIGet('Hanoi_Coins','Item_Y')); + Item_Color := S2V(INIGet('Hanoi_Coins','Item_Color')); + Text_Color := S2V(INIGet('Hanoi_Texts','Text_Color')); + CloseINI; + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + T_Center[1] := xmed-(Board_X DIV 4); + T_Center[2] := xmed; + T_Center[3] := xmed+(Board_X DIV 4); + Board_Up := Board_Middle-(Board_Y DIV 2); + Board_Down := Board_Middle+(Board_Y DIV 2); + Tower_Y := (Hmax+1)*Item_Y; + Step := 0; + for i:=1 to 3 do begin + for j:=1 to Hmax do begin + Hanoi[i,j] := 0; + Hanoi[1,j] := Hmax-j+1; + Item_X[Hmax-j+1] := Trunc(((Hmax-j)/(Hmax-1))*(Item_MaxX-Item_MinX))+Item_MinX; + end; + end; +end; + +procedure DrawBoard; +var i,j: byte; +begin + ClearDevice; + for i:=1 to 3 do begin + SetColor(Tower_Color); + SetFillPattern(Gray50,Tower_Color); + Rectangle(T_Center[i]-(Tower_X DIV 2),Board_Up-Tower_Y,T_Center[i]+(Tower_X DIV 2),Board_Up); + FloodFill(T_Center[i],Board_Middle-(Board_Y DIV 2)-(Tower_Y DIV 2),Tower_Color); + SetColor(Text_Color); + SetTextJustify(CenterText, CenterText); + OutTextXY(T_Center[i],Board_Down+10,V2S(i)); + SetTextJustify(LeftText, TopText); + end; + SetColor(Board_Color); + Rectangle(xmed-(Board_X DIV 2),Board_Up,xmed+(Board_X DIV 2),Board_Down); + SetFillPattern(Gray50,Board_Color); + FloodFill(xmed,Board_Middle,Board_Color); + + for i:=1 to 3 do begin + for j:=1 to Hmax do begin + if Hanoi[i,j]<>0 then begin + SetColor(Item_Color); + SetFillPattern(Gray50,Item_Color); + Rectangle(T_Center[i]-(Item_X[Hanoi[i,j]] DIV 2),Board_Up-(Item_Y*(j-1)),T_Center[i]+(Item_X[Hanoi[i,j]] DIV 2), + Board_Up-(Item_Y*j)); + FloodFill(T_Center[i],Board_Up-(Item_Y*j)+(Item_Y DIV 2),Item_Color); + end; + end; + end; +end; + + +function WhatsLast(Tower: byte): byte; +var i: integer; + tmp: byte; +begin + tmp := 0; + for i:=Hmax downto 1 do begin + if Hanoi[Tower,i]<>0 then begin + tmp := Hanoi[Tower,i]; + Break; + end; + end; + if (tmp=0) then tmp:=255; + SetTextJustify(CenterText, CenterText); + OutTextXY(T_Center[Tower],Board_Down+20,V2S(tmp)); + SetTextJustify(LeftText, TopText); + WhatsLast := tmp; +end; + +function TakeLast(Tower: byte): byte; +var i: integer; + tmp: byte; +begin + for i:=Hmax downto 1 do begin + if Hanoi[Tower,i]<>0 then begin + tmp := Hanoi[Tower,i]; + Hanoi[Tower,i] := 0; + Break; + end; + end; + TakeLast := tmp; +end; + +procedure PutOnto(Which,Tower: byte); +var i: integer; +begin + for i:=1 to Hmax do begin + if Hanoi[Tower,i]=0 then begin + Hanoi[Tower,i]:=which; + Break; + end; + end; +end; + +procedure MoveFromTo(Mv_From, Mv_To: byte); +var temp: byte; +begin + if (WhatsLast(Mv_To)>WhatsLast(Mv_From)) then begin + PutOnto(TakeLast(Mv_From),Mv_To); + Inc(Step); + if (Sound_ON) then begin + Sound(1200); + Delay(75); + NoSound; + end; + end else begin + if (Sound_ON) then begin + Sound(800); + Delay(150); + NoSound; + end; + SetTextJustify(CenterText,CenterText); + SetColor(LightRed); + OutTextXY(xmed,40,'Can''t move Item on Tower '+V2S(Mv_From)+' to Tower '+V2S(Mv_To)+'.'); + Delay(1000); + end; +end; + +function All(what: byte): word; +var tmp: word; +begin + if what=1 then All:=1 else All:=what+All(what-1); +end; + +function CheckWon: boolean; +var i,j: byte; + sum: word; + tmp: boolean; +begin + for i:=2 to 3 do begin + if (WhatsLast(i)=1) then begin + sum := 0; + for j:=1 to Hmax do begin + sum := sum + Hanoi[i,j]; + end; + if (sum=All(Hmax)) then begin + tmp:=true; + Break; + end; + end else tmp:=false; + end; + CheckWon := tmp; +end; + +procedure Outit; +var i: byte; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + for i:=1 to Hmax do begin + WriteLn('Tower_X ',i,': ',Item_X[i]); + end; + WriteLn('Steps needed: ',Step:0); + WriteLn; + if (CheckWon) then WriteLn('Programm siegreich beendet.') else WriteLn('Programm grundlos beendet.'); +end; + +begin + Init; + repeat + DrawBoard; + if (CheckWon) then begin + if (Sound_ON) then begin + Sound(1000); + Delay(100); + NoSound; + Delay(200); + Sound(1000); + Delay(50); + NoSound; + Delay(100); + Sound(1000); + Delay(50); + NoSound; + Delay(100); + Sound(1400); + Delay(750); + NoSound; + end; + Break; + end; + SetColor(LightGreen); + SetTextJustify(CenterText,BottomText); + OutTextXY(xmed,ymax,'Press X to exit'); + SetTextJustify(LeftText,TopText); + SetColor(Text_Color); + Str(Step:3,tmp1); + OutTextXY(550,10,'Step: '+tmp1); + tmp1 := 'Move Item from Tower '; + OutTextXY(10,10,'Press 1, 2 or 3 to select a tower.'); + OutTextXY(10,20,tmp1); + Input := ReadKey; + if (Input='1') OR (Input='2') OR (Input='3') then begin + Val(Input,Mv_From,Code); + Str(Mv_From:0,tmp2); + tmp1 := tmp1 + tmp2 + ' to Tower '; + OutTextXY(10,20,tmp1); + Input := ReadKey; + if (Input='1') OR (Input='2') OR (Input='3') then begin + Val(Input,Mv_To,Code); + Str(Mv_To:0,tmp2); + tmp1 := tmp1 + tmp2 + ' ...'; + OutTextXY(10,20,tmp1); + MoveFromTo(Mv_From,Mv_To); + end else if (Input<>'x') AND (Input<>'X') then begin + if (Sound_ON) then begin + Sound(800); + Delay(150); + NoSound; + end; + end else Break; + end else if (Input<>'x') AND (Input<>'X') then begin + if (Sound_ON) then begin + Sound(800); + Delay(150); + NoSound; + end; + end; + until (Input='x') OR (Input='X'); + Outit; +end. \ No newline at end of file diff --git a/ITG/HANOIT.PAS b/ITG/HANOIT.PAS new file mode 100644 index 0000000..cdb9b07 --- /dev/null +++ b/ITG/HANOIT.PAS @@ -0,0 +1,29 @@ +program Bewege_Test; + +uses Crt; + +var howmuchcanyoutake: integer; + step: integer; + +procedure Bewege(n: integer; p1,p2,p3: char); +begin + if n=1 then begin + WriteLn(p1,' --> ',p2); + Inc(step); + end else begin + Bewege(n-1,p1,p3,p2); + Bewege(1,p1,p2,p3); + Bewege(n-1,p3,p2,p1); + end; +end; + +begin + ClrScr; + Step := 0; + TextMode(CO80+Font8x8); + Write('Wieviel Mnzen? '); + ReadLn(howmuchcanyoutake); + Bewege(howmuchcanyoutake,'1','2','3'); + WriteLn('Schritte: ',step); + ReadKey; +end. \ No newline at end of file diff --git a/ITG/HASHING.PAS b/ITG/HASHING.PAS new file mode 100644 index 0000000..06ba3ee --- /dev/null +++ b/ITG/HASHING.PAS @@ -0,0 +1,66 @@ +program Hashing; + +uses Crt; + +const max=25; + +var mem: array[0..max] of integer; + x,pos: integer; + +procedure Init; +var i: integer; +begin + for i:=0 to max do mem[i] := 255; +end; + +procedure OutArray; +var i: integer; +begin + for i:=0 to max do begin + if (i/2)=(I DIV 2) then TextColor(10) else TextColor(12); + GotoXY(i*3+1,3); Write(i:3); + GotoXY(i*3+1,4); if (mem[i]<>255) then Write(mem[i]:3); + end; +end; + +function Hash(v: integer): integer; +begin + Hash := v MOD 13; +end; + +procedure MakeFree(var v: integer); +begin + if (mem[v]<>255) then begin + repeat + Inc(v); + until (mem[v]=255) OR (v>max); + end; + if (v>max) then begin + ClrScr; + TextColor(12); + WriteLn('Array berschritten! Das Feld ist VOLL!'); + Halt; + end; +end; + +procedure ReadAndSort; +var i: integer; +begin + for i:=1 to 15 do begin + GotoXY(5,5); + ReadLn(x); + pos := Hash(x); + MakeFree(pos); + mem[pos] := x; + OutArray; + end; +end; + +begin + TextBackground(0); + TextColor(15); + ClrScr; + Init; + OutArray; + ReadAndSort; +end. diff --git a/ITG/ISBN.PAS b/ITG/ISBN.PAS new file mode 100644 index 0000000..5fc7f07 --- /dev/null +++ b/ITG/ISBN.PAS @@ -0,0 +1,39 @@ +program ISBNGrab; + +uses Crt; + +var UrISBN: string; + i,j,co: integer; + +function BNS(ISBN: string;which: integer): string; +var NR: array[1..10] of string; + x,lastx,i: integer; + j: string; +begin + i := 1; + lastx := 0; + for x:=0 to Length(ISBN) do begin + if ISBN[x]='-' then begin + NR[i] := Copy(ISBN,lastx+1,x-lastx-1); + Inc(i); + lastx := x; + end; + end; + NR[i] := Copy(ISBN,lastx+1,Length(ISBN)); + if which<>0 then BNS := NR[which] else begin + Str(i:0,j); + BNS := j; + end; +end; + + +begin + Write('ISBN eintippen: '); + ReadLn(UrISBN); + Write('ISBN: ',BNS(UrISBN,1)); + Val(BNS(UrISBN,0),j,co); + for i:=2 to j do Write('-',BNS(UrISBN,i)); + WriteLn(' (',BNS(UrISBN,0),' Gruppen)'); + WriteLn('Buchnr.: ',BNS(UrISBN,3)); + ReadKey; +end. diff --git a/ITG/KLAU1_02.PAS b/ITG/KLAU1_02.PAS new file mode 100644 index 0000000..1e8f25c --- /dev/null +++ b/ITG/KLAU1_02.PAS @@ -0,0 +1,12 @@ +var a,b,cs,max: integer; + +begin + Write('max: '); + ReadLn(max); + for a:=1 to max do begin + for b:=a to max do begin + cs := Sqr(a)+Sqr(b); + if Sqrt(cs)=Int(Sqrt(cs)) then WriteLn(a,'+',b,'=',Sqrt(cs):0:0,''); + end; + end; +end. diff --git a/ITG/LOTTO.PAS b/ITG/LOTTO.PAS new file mode 100644 index 0000000..9c9cf5c --- /dev/null +++ b/ITG/LOTTO.PAS @@ -0,0 +1,114 @@ +program Lotto_Ziehung; + +uses Crt, CursorOnOff, Dos; + +const prog:char='/'; + freq=30; + pfreq=10; + +var lotto: array[1..49] of longint; + fulr: array[1..freq] of real; + fuls: byte; + pers: byte; + full: real; + isec: longint; + h,m,s,ss: word; + +procedure StartClock; +begin + GetTime(h,m,s,ss); + isec := h*3600+m*60+s; +end; + +function RunSec: longint; +var nh,nm,ns,nss: word; + nsec: longint; +begin + GetTime(nh,nm,ns,nss); + nsec := nh*3600+nm*60+ns; + RunSec := nsec-isec; +end; + +procedure Progress(how,much: real); +var wx,wy: word; + secs,tfull,rest: real; + i: byte; + fsum: real; +begin + secs := RunSec; + if (fuls0) then rest := full - secs else rest := 0; + end else begin + fsum := 0; + for i:=1 to freq do fsum := fsum + fulr[i]; + full := fsum / freq; + rest := full - secs; + fuls := 0; + end; + if (pers>pfreq) then begin + Write(prog,' [',(how/much)*100:6:2,'%] (',secs:4:0,'/',full:4:0,' ',rest:4:0,' left)'); + pers := 0; + end else begin + Write(prog); + GotoXY(WhereX+11,WhereY); + Write('(',secs:4:0); + end; + Inc(pers); + GotoXY(14,WhereY); + case prog of + '/': prog:= '-'; + '-': prog:= '\'; + '\': prog:= '|'; + '|': prog:= '/'; + end; +end; + + +procedure init; +var i:byte; +begin + { clrscr; } + fuls := 0; + full := 0; + pers := 0; + writeLn; + Randomize; +{ RandSeed := 123; } + for i:=1 to 49 do Lotto[i]:=0; +end; + +procedure Ziehung; +var i,n: longint; +begin + write('Wieviel Ziehungen? '); ReadLn(n); + StartClock; + CursorOff; + write('Berechne ... '); + for i:=1 to n do begin + if i MOD 100000=0 then Progress(i,n); + inc(Lotto[Random(49)+1]); + end; + GotoXY(wherex-1,wherey); WriteLn(' fertig! '); + CursorOn; +end; + +procedure Auswertung; +var z,i,max: byte; +begin + WriteLn('Die 6 hufigsten Ziehungen:'); + for z:=1 to 6 do begin + max:=1; + for i:=2 to 49 do if Lotto[i]>Lotto[max] then max:=i; + WriteLn(z:1,': ',max:2,' [',Lotto[max],']'); + Lotto[max]:=0; + end; +end; + +begin + init; + Ziehung; + auswertung; +end. diff --git a/ITG/MENGELOT.PAS b/ITG/MENGELOT.PAS new file mode 100644 index 0000000..8b24a8e --- /dev/null +++ b/ITG/MENGELOT.PAS @@ -0,0 +1,46 @@ +uses crt; + +type TMenge = SET of 1..49; +var Tip1, Tip2, Tip3: TMenge; + +procedure Init(var Menge: TMenge); +begin + (**) Menge := []; (**) +end; + +procedure LottoZiehung(var Zahlen: TMenge); +var anzahl, ZufZahl: byte; +begin + anzahl := 0; + repeat + repeat + ZufZahl := random(49)+1; + until NOT (**) (ZufZahl IN Zahlen) (**) ; + (**) Zahlen := Zahlen + [ZufZahl] (**) ; + (**) Inc(anzahl) (**) ; + until anzahl = 6; +end; + +procedure Ausgabe(Zahlen: TMenge); +var i: byte; +begin + for i:= (**) 1 to 49 (**) do + (**) if i IN Zahlen then write(i, ' ') (**) ; + (**) writeln (**) ; +end; + +begin + clrscr; Randomize; + + Init( (**) Tip1 (**) ); + LottoZiehung( (**) Tip1 (**) ); + Ausgabe( (**) Tip1 (**) ); + + Init( (**) Tip2 (**) ); + LottoZiehung( (**) Tip2 (**) ); + Ausgabe( (**) Tip2 (**) ); + + Init( (**) Tip3 (**) ); + LottoZiehung( (**) Tip3 (**) ); + Ausgabe( (**) Tip3 (**) ); +end. \ No newline at end of file diff --git a/ITG/MIRROR.PAS b/ITG/MIRROR.PAS new file mode 100644 index 0000000..aee105f --- /dev/null +++ b/ITG/MIRROR.PAS @@ -0,0 +1,95 @@ +program Mirroring; + +uses Crt, Graph, GUI, BGIP; + +var xmax,ymax: integer; + omx, omy, omb: integer; + lx,ly,rx,ry: integer; + orx,ory: integer; + ls,rs: boolean; + +procedure GraphInit; +var grDriver, grMode : integer; +begin + grDriver := VGA; + { VGAlo 640x200x16 + VGAmed 640x350x16 + VGAhi 640x480x16 } + grMode := VGAhi; + InitGraph(grDriver,grMode,BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } +end; + +procedure GraphOutit; +begin + TextMode(co80 + Font8x8); +end; + +function Num2Str(x: longint): string; +var tmp: string; +begin + Str(x:3,tmp); + Num2Str := tmp; +end; + +procedure SetRect; +begin + omx := 0; + omy := 0; + omb := 0; + lx := 0; ly := 0; + ls := false; + rs := false; + repeat + repeat + MouseStat(mx,my,mb); + until (mx<>omx) OR (my<>omy) OR (mb<>omb); + if (mb=1) AND NOT (ls) then begin + repeat + MouseStat(mx,my,mb); + until (mb=0); + lx := mx; + ly := my; + ls := true; + end; + rx := mx; + ry := my; + if (lx<>0) AND (ly<>0) AND ((rx<>orx) OR (ry<>ory)) AND NOT (rs) then begin + ShowMouse(false); + SetColor(0); + Rectangle(lx,ly,orx,ory); + SetColor(15); + Rectangle(lx,ly,rx,ry); + ShowMouse(true); + orx := rx; + ory := ry; + end; + if (lx<>0) AND (ly<>0) AND (rx<>0) AND (ry<>0) AND (mb=1) then begin + rs := true; + repeat + MouseStat(mx,my,mb); + until (mb=0); + end; + omx := mx; + omy := my; + omb := mb; + Bar(1,1,150,30); + OutTextXY(1,1,'X:'+Num2Str(mx)+' Y:'+Num2Str(my)+' Buttons:'+Num2Str(mb)); + until (ls) AND (rs); +end; + +begin + GraphInit; + fo_del := 0; + InitPalette; + MouseReset; + ShowMouse(true); + SetFillStyle(SolidFill,0); + SetTextStyle(SmallFont,HorizDir,4); + SetColor(15); + SetRect; + Alert('Fertich!!'); + FadeOut; + GraphOutit; +end. diff --git a/ITG/MITARB.PAS b/ITG/MITARB.PAS new file mode 100644 index 0000000..16ea7ea --- /dev/null +++ b/ITG/MITARB.PAS @@ -0,0 +1,86 @@ +program Mitarbeiter; + +uses Crt; + +{ 1..8 = Abteilung + 1..6 = Altersgruppe: + 1 - 16-19 + 2 - 20-24 + 3 - 25-35 + 4 - 36-49 + 5 - 50-60 + 6 - >60 + 1..2 = Geschlecht: + 1 - mnnlich + 2 - weiblich } + +var Arbeiter: array[1..8,1..6,1..2] of byte; + +procedure InitArray; +var i,j: byte; +begin + Randomize; + for i:=1 to 8 do + for j:=1 to 6 do begin + Arbeiter[i,j,1] := Random(250); + Arbeiter[i,j,2] := Random(250); + end; +end; + +function GetMalesFromAbt(abt: byte): integer; +var i: byte; + m: integer; +begin + m := 0; + for i:=1 to 6 do begin + m := m + Arbeiter[abt,i,1]; + end; + GetMalesFromAbt := m; +end; + +function GetFemsFromAbt(abt: byte): integer; +var i: byte; + f: integer; +begin + f := 0; + for i:=1 to 6 do begin + f := f + Arbeiter[abt,i,2]; + end; + GetFemsFromAbt := f; +end; + +function GetPeopleInAbt(abt: byte): integer; +var i: byte; + a: integer; +begin + a := 0; + for i:=1 to 6 do a := a + Arbeiter[abt,i,1] + Arbeiter[abt,i,2]; + GetPeopleInAbt := a; +end; + +procedure GetInfo; +var i,j: byte; + m,w: integer; +begin + m := 0; + w := 0; + for i:=1 to 8 do + for j:=1 to 6 do begin + m:=m+Arbeiter[i,j,1]; + w:=w+Arbeiter[i,j,2]; + end; + WriteLn('Anzahl mnnlicher Mitarbeiter firmenweit: ',m); + WriteLn('Anzahl weiblicher Mitarbeiter firmenweit: ',w); + for i:=1 to 8 do WriteLn('Mitarbeiter in Abteilung ',i:1,': ',GetPeopleInAbt(i):4, + ' (',GetMalesFromAbt(i):4,' Mnner/',GetFemsFromAbt(i):4,' Frauen)'); +end; + + +begin + InitArray; + ClrScr; + GetInfo; + ReadKey; + + +end. \ No newline at end of file diff --git a/ITG/NUMLOOSE.PAS b/ITG/NUMLOOSE.PAS new file mode 100644 index 0000000..9afcb33 --- /dev/null +++ b/ITG/NUMLOOSE.PAS @@ -0,0 +1,19 @@ +program NumberLoose; + +var input: string; + +function Zahl(S: string): longint; +var i: integer; + tmp: longint; +begin + tmp := 0; + for i:=1 to Length(s) do + if Ord(s[i]) IN [48..57] then tmp:=tmp*10+Ord(s[i])-48; + Zahl := tmp; +end; + +begin + Write('blabla eingeben: '); + ReadLn(input); + WriteLn('Ord vom blabla: ',Zahl(input)); +end. diff --git a/ITG/PACKEN.PAS b/ITG/PACKEN.PAS new file mode 100644 index 0000000..c51abca --- /dev/null +++ b/ITG/PACKEN.PAS @@ -0,0 +1,36 @@ +uses Crt; + +const personen: array[1..10] of string=('Bert','','Ernie','Wilma','','Fred','Barney','','Gerllheimer','Horst'); + +procedure Zaehle; +begin + +end; + +procedure Ausgabe; +var i: byte; +begin + WriteLn('<==*==>'); + for i:=1 to 10 do WriteLn(personen[i]); + ReadKey; +end; + +procedure Packe; +var i,a: integer; +begin + for i:=1 to 10 do begin + if (personen[i]='') then begin + for a:=i to 10 do begin + personen[a]:=personen[a+1]; + end; + end; + Write(i,': '); Ausgabe; + end; +end; + + +begin + Zaehle; + Packe; + Ausgabe; +end. diff --git a/ITG/PUMPE.PAS b/ITG/PUMPE.PAS new file mode 100644 index 0000000..1e553dc --- /dev/null +++ b/ITG/PUMPE.PAS @@ -0,0 +1,201 @@ +program Pumpensteuerung; + +uses Crt; + +const Full=''; + Half=''; + Empt=' '; + timemult: integer=10; + B1E: boolean=true; + B2E: boolean=true; + B1D: integer=4; + B2D: integer=4; + B1: real=2950; + B2: real=2750; + +var Y1,Y2,Y3,A,B,C,D: boolean; + x: char; + +{ 1 Behlter = 5700 l = in 2 Minuten voll } + +procedure Init; +begin + ClrScr; + TextColor(7); + GotoXY(20,18); Write('1 - B1',#127,' an/aus'); + GotoXY(20,19); Write('Q - B1',#127,'max +600'); + GotoXY(20,20); Write('A - B1',#127,'max -600'); + GotoXY(50,18); Write('2 - B2',#127,' an/aus'); + GotoXY(50,19); Write('W - B2',#127,'max +600'); + GotoXY(50,20); Write('S - B2',#127,'max -600'); + GotoXY(35,22); Write('^ - Ventil umschalten'); + GotoXY(35,23); Write('E - Zeitraffer +1'); + GotoXY(35,24); Write('D - Zeitraffer -1'); + GotoXY(33,25); Write('ESC - Simulation beenden'); + Randomize; + Y1 := false; + Y2 := false; + Y3 := false; +end; + +procedure SetLEDs; +var a: byte absolute 0:1047; +begin + a := 0; + if Y1 then Inc(a,32); + if Y2 then Inc(a,64); + if Y3 then Inc(a,16); +end; + +procedure ResetLEDs; +var a: byte absolute 0:1047; +begin + a := 32; +end; + +procedure DrawPumpe; +var i: integer; +begin + GotoXY(1,1); if Y1 then TextColor(14) else TextColor(8); Write('Y1 (NUM)'); + GotoXY(1,2); if Y2 then TextColor(14) else TextColor(8); Write('Y2 (CAPS)'); + GotoXY(1,3); if Y3 then TextColor(14) else TextColor(8); Write('Y3 (SCROLL)'); + GotoXY(1,5); if (B1E) then TextColor(15) else TextColor(8); + Write('B1',#127,'max: ',B1D*600:5,' l/min'); + GotoXY(1,6); if (B2E) then TextColor(15) else TextColor(8); + Write('B2',#127,'max: ',B2D*600:5,' l/min'); + TextColor(15); + GotoXY(1,8); Write('Zeitraffung: ',timemult:2,'x'); + + if (Y1) OR (Y2) then TextColor(11) else TextColor(7); + GotoXY(40, 5); Write(''); + if (Y1) OR (Y2) then TextColor(10+blink); Write('(P)'); + TextColor(15); + if NOT (Y1) AND NOT (Y2) then Write(' [0 l/min] '); + if NOT (Y1) AND (Y2) then Write(' [750 l/min] '); + if (Y1) AND NOT (Y2) then Write(' [1450 l/min] '); + if (Y1) AND (Y2) then Write(' [2850 l/min] '); + if (Y1) OR (Y2) then TextColor(11) else TextColor(7); + GotoXY(40, 6); Write(''); + GotoXY(39,7); if Y3 then Write(' ') else Write(' '); + + GotoXY(25,7); + if NOT (Y3) AND ((Y2) OR (Y1)) then TextColor(11) else TextColor(7); + Write(''); + GotoXY(42,7); + if (Y3) AND ((Y2) OR (Y1)) then TextColor(11) else TextColor(7); + Write('Ŀ'); + + for i:=1 to 7 do begin + if (B1E) then TextColor(15) else TextColor(8); + GotoXY(20,7+i); Write(''); + if (B1>=950*(8-i)) then Write(Full) + else if (B1>=950*(8-i)-475) then Write(Half) + else Write(Empt); + Write(''); + if (B2E) then TextColor(15) else TextColor(8); + GotoXY(50,7+i); Write(''); + if (B2>=950*(8-i)) then Write(Full) + else if (B2>=950*(8-i)-475) then Write(Half) + else Write(Empt); + Write(''); + end; + + if (B1E) then TextColor(15) else TextColor(8); + GotoXY(19,15); Write('[',B1:4:0,'l]'); + GotoXY(19,16); Write(''); + if (B2E) then TextColor(15) else TextColor(8); + GotoXY(50,15); Write('[',B2:4:0,'l]'); + GotoXY(61,16); Write(''); + + GotoXY(31,9); if (A) then TextColor(14) else TextColor(8); Write(' A'); + GotoXY(31,12); if (C) then TextColor(14) else TextColor(8); Write(' C'); + GotoXY(47,9); if (B) then TextColor(14) else TextColor(8); Write('B '); + GotoXY(47,12); if (D) then TextColor(14) else TextColor(8); Write('D '); +end; + +procedure CalcSensors; +begin + if (B1>=5700) then A := true else A := false; + if (B1>=2850) then C := true else C := false; + if (B2>=5700) then B := true else B := false; + if (B2>=2850) then D := true else D := false; +end; + +procedure CalcSteering; +begin + if (A) AND (B) AND (C) AND (D) then begin + Y1 := false; + Y2 := false; + end; + if NOT (A) AND NOT (B) AND NOT (C) AND NOT (D) then begin + Y1 := true; + Y2 := true; + end; + if ((A) AND NOT (B)) OR (NOT (A) AND (B)) AND (C) AND (D) then begin + Y1 := false; + Y2 := true; + end; + if (NOT (A) AND NOT (B) AND (C) AND (D)) + OR ((A) AND NOT (B) AND (C) AND NOT (D)) + OR (NOT (A) AND (B) AND NOT (C) AND (D)) then begin + Y1 := true; + Y2 := false; + end; + + if (A) AND NOT (B) then Y3 := true; + if (B) AND NOT (A) then Y3 := false; + if (C) AND NOT (D) then Y3 := true; + if (D) AND NOT (C) then Y3 := false; +end; + +procedure NimmWas; +var x: integer; +begin + if (B1E) then begin + x := Round(Random(B1D*2)/2)*timemult; + if (B1-x<0) then B1 := 0 else B1 := B1 - x; + end; + if (B2E) then begin + x := Round(Random(B2D*2)/2)*timemult; + if (B2-x<0) then B2 := 0 else B2 := B2 - x; + end; +end; + +procedure Pump; +var sp: real; +begin + if NOT (Y1) AND NOT (Y2) then sp := 0; + if NOT (Y1) AND (Y2) then sp := 750 / (600/timemult); + if (Y1) AND NOT (Y2) then sp := 1450 / (600/timemult); + if (Y1) AND (Y2) then sp := 2850 / (600/timemult); + + if (Y3) then B2 := B2 + sp else B1 := B1 + sp; +end; + +begin + Init; + repeat + CalcSensors; + CalcSteering; + SetLEDs; + NimmWas; + DrawPumpe; + Pump; + Delay(100); + if (keypressed) then x := ReadKey else x := #000; + if (x<>#000) then begin + case x of + '1','!': if (B1E) then B1E := false else B1E := true; + '2','"': if (B2E) then B2E := false else B2E := true; + 'q','Q': if B1D<20 then Inc(B1D); + 'a','A': if B1D>0 then Dec(B1D); + 'w','W': if B2D<20 then Inc(B2D); + 's','S': if B2D>0 then Dec(B2D); + '^','': if (Y3) then Y3 := false else Y3 := true; + 'e','E': if timemult<50 then Inc(timemult); + 'd','D': if timemult>1 then Dec(timemult); + end; + end; + until x=#027; + ResetLEDs; +end. diff --git a/ITG/QUERSUM.PAS b/ITG/QUERSUM.PAS new file mode 100644 index 0000000..f4c1dd9 --- /dev/null +++ b/ITG/QUERSUM.PAS @@ -0,0 +1,23 @@ +program Quersumme; + +var Zahl: longint; + +function Quer(zahl: longint): integer; +var conv: string; + i,q,tmp,ec: integer; + +begin + Str(zahl,conv); + q := 0; + for i:=1 to Length(conv) do begin + Val(conv[i],tmp, ec); + if ec=0 then q:=q + tmp; + end; + Quer := q; +end; + +begin + Write('Tipp ''ne Ganzzahl ein: '); + ReadLn(Zahl); + WriteLn('Quersumme von ',Zahl:0,' ist ',Quer(Zahl),'.'); +end. \ No newline at end of file diff --git a/ITG/QUICKSOR.PAS b/ITG/QUICKSOR.PAS new file mode 100644 index 0000000..8f6f8d7 --- /dev/null +++ b/ITG/QUICKSOR.PAS @@ -0,0 +1,23 @@ +procedure quicksort(anfang,ende : integer; var f : feldtyp); +var links, rechts : integer; + h, vgl : elementtyp; +begin + links := anfang; rechts := ende; vgl := f[(links+rechts) div 2]; + + if links < rechts then + begin + repeat + while f[links]< vgl do inc(links); + while f[rechts]> vgl do dec(rechts); + if links <= rechts then + begin + h:=f[links]; + f[links]:= f[rechts]; + f[rechts]:=h; + inc(links); dec(rechts); + end; + until links > rechts; + quicksort(anfang,rechts,f); + quicksort(links,ende,f); + end; +end; diff --git a/ITG/RECORDS.PAS b/ITG/RECORDS.PAS new file mode 100644 index 0000000..c46d976 --- /dev/null +++ b/ITG/RECORDS.PAS @@ -0,0 +1,12 @@ +program Records; + +uses Crt; + +type TAdr=record + N,V: string; + A: byte; + end; + +var Adr1, Adr2: TAdr; + +begin diff --git a/ITG/REKGRAF1.PAS b/ITG/REKGRAF1.PAS new file mode 100644 index 0000000..8bcfd44 --- /dev/null +++ b/ITG/REKGRAF1.PAS @@ -0,0 +1,93 @@ +Uses CRT,Graph; +var globalwinkel:integer; + graphdriver,graphmode:integer; + +Procedure GrafikAn; +begin + graphdriver:=detect; + initgraph(graphdriver,graphmode,'F:\SPRACHEN\BP\BGI'); + setgraphmode(graphmode); +end; +Procedure GrafikAus; +begin + clearviewport; + restorecrtmode; + closegraph; +end; +Procedure Init; +begin + clearviewport; + setcolor(14); + moveto (230,400); + globalwinkel:=0; +end; + +Procedure turnleft (var winkel:integer); +begin + globalwinkel:=(globalwinkel-winkel) mod 360 +end; +Procedure turnright (var winkel:integer); +begin + globalwinkel:=(globalwinkel+winkel) mod 360 +end; +Procedure forwd (strecke:integer); +var hilf:real; +begin + hilf:=globalwinkel*pi/180; + linerel(round(strecke*cos(hilf)), + round(strecke*sin(hilf))) +end; + +Procedure Haken(Laenge,Winkel : integer); +begin + if Laenge > 1 then + begin + Haken(Laenge - 1, Winkel); + Forwd(Laenge); + TurnLeft(Winkel); + end; +end; + +Procedure Quadrat(Laenge,Winkel:integer); +Var seite:integer; +begin + if laenge >1 then + begin + for Seite := 1 to 4 do + begin + forwd(laenge); + Turnleft(winkel); + end; + quadrat((Laenge*3) div 4,Winkel); + end; +end; + +procedure spirale(laenge,winkel:integer); +begin + Forwd(Laenge div 2); + Turnright(Winkel); + if laenge < 80 then Spirale(laenge+1,winkel); +end; + +procedure skier(laenge,ecke:integer); +var n : byte; + w : integer; +begin + w := 360 div ecke; + if laenge > 30 then + for n := 1 to ecke do + begin + forwd(laenge); + turnleft(w ); + skier(laenge div 2,ecke); + end; +end; + +begin + GrafikAn; + init; skier(120,10); readkey; + init; Haken(150,45); readkey; + init; Quadrat(150,90); readkey; + init; Spirale(10,25); readkey; + GrafikAus; +end. \ No newline at end of file diff --git a/ITG/REPSTRNG.PAS b/ITG/REPSTRNG.PAS new file mode 100644 index 0000000..0002234 --- /dev/null +++ b/ITG/REPSTRNG.PAS @@ -0,0 +1,33 @@ +program ConvUmlaut; + +uses Crt; + +var mystr: string; + +procedure ChangeAll(var text: string; what, targ: string); +var x: byte; +begin + while Pos(what,text) > 0 do begin + x := Pos(what,text); + Delete(text,x,1); + Insert(targ,text,x); + end; +end; + +begin + ClrScr; + mystr := 'x'; + while mystr<>'' do begin + Write('Dein Text mit Umlauten: '); + ReadLn(mystr); + ChangeAll(mystr,'','ae'); + ChangeAll(mystr,'','oe'); + ChangeAll(mystr,'','ue'); + ChangeAll(mystr,'','AE'); + ChangeAll(mystr,'','OE'); + ChangeAll(mystr,'','UE'); + ChangeAll(mystr,'','ss'); + Write('Dein Text ohne Umlaute: '); + WriteLn(mystr); + end; +end. \ No newline at end of file diff --git a/ITG/ROBOCARD.PAS b/ITG/ROBOCARD.PAS new file mode 100644 index 0000000..b7767d3 --- /dev/null +++ b/ITG/ROBOCARD.PAS @@ -0,0 +1,91 @@ +program RoboCarder; + +{ MOD-10 algorithm + + first digit: kind of credit card ( 3-AMEX, 4-VISA, 5-MC ) + + length + ------ + AMEX - 15 digits + VISA - 16 digits, sometimes 13 + all other - 16 digits + + validation + ---------- + begin at the rightmost digit and go to the left. + the odd digits are all sum'd up. the even (every 2nd) digits are + multiplied by 2. if the result is greater than 9, 9 is substracted. + this resulting value is added to the sum. + + sum MOD 10 must be 0. + +} + + +uses Crt; + +const bigdigit: array[0..9,1..3] of string[5] = ( ('23332','10001','03330'), + { 1 } ('02100','00100','00300'), + { 2 } ('33332','23330','33333'), + { 3 } ('33332','03332','33330'), + { 4 } ('10010','33313','00030'), + { 5 } ('13333','33332','33330'), + { 6 } ('23333','13332','03330'), + { 7 } ('33313','02300','30000'), + { 8 } ('23332','23332','03330'), + { 9 } ('23332','03331','33330')); + +var inp: string[16]; + +procedure CheckValidity(x: string); +var i,sum,tmp,ec: integer; +begin + WriteLn('Number length: ',Length(x)); + Val(x[1],tmp,ec); + case tmp of + 3: WriteLn('Type: American Express'); + 4: WriteLn('Type: VISA'); + 5: WriteLn('Type: MasterCard'); + end; + sum := 0; + for i:=1 to Length(x) do begin + Val(x[Length(x)-i+1],tmp,ec); + if i MOD 2=0 then tmp := tmp*2; + if tmp>9 then tmp := tmp-9; + sum := sum + tmp; + end; + WriteLn('Quersumme: ',sum); + if sum MOD 10=0 then WriteLn('VALID') else WriteLn('INVALID!!!'); +end; + +procedure BigWrite(w: string;x,y: word); +var i,j,k,ec: integer; + tmp: byte; +begin + for k:=1 to Length(w) do begin + for j:=1 to 3 do begin + GotoXY(x+(k-1)*6,y+j-1); + for i:=1 to 5 do begin + Val(w[k],tmp,ec); + case bigdigit[tmp,j][i] of + '0': Write(' '); + '1': Write(''); + '2': Write(''); + '3': Write(''); + end; + end; + end; + end; +end; + +begin + ClrScr; + GotoXY(1,7); + Write('Enter Credit Card number: '); + ReadLn(inp); + BigWrite(Copy(inp,1,8),1,1); + BigWrite(Copy(inp,9,8),1,4); + GotoXY(1,8); + CheckValidity(inp); + ReadKey; +end. diff --git a/ITG/SATZANAL.PAS b/ITG/SATZANAL.PAS new file mode 100644 index 0000000..6be0965 --- /dev/null +++ b/ITG/SATZANAL.PAS @@ -0,0 +1,87 @@ +program Sentencizer; + +uses Crt, VFx; + +type TZeichenMenge = Set of Char; + +var Ziffern, Buchstaben, Sonstige, + Vokale, Konsonanten, Urmenge, Umlaute: TZeichenMenge; + Zi, Bu, So, Vo, Um, Leer, i : byte; + Satz : String[80]; + + +procedure Input; +begin + Write('Bitte den Satz eingeben: '); + ReadLn(Satz); + WriteLn(' ==> Dankeschn!'); + Zi := 0; + Bu := 0; + So := 0; + Vo := 0; + Um := 0; + Leer := 0; + Ziffern := ['0'..'9']; + Buchstaben := ['a'..'z','A'..'Z']; + Sonstige := ['!'..'}']-(Ziffern + Buchstaben); + Vokale := ['a','e','i','o','u','A','E','I','O','U']; + Umlaute := ['','','','','','']; + Konsonanten := Buchstaben - Vokale; + Urmenge := []; +end; + +procedure Analyze; +begin + Write(MultiChar('-',80)); + Write('Analyse luft: Durchzhlen ... '); + for i:=1 to Length(Satz) do begin + if Satz[i] IN Buchstaben then Inc(Bu) + else if Satz[i] IN Ziffern then Inc(Zi) + else if Satz[i] IN Umlaute then Inc(Um) + else if Satz[i]=' ' then Inc(Leer) + else Inc(So); + if Satz[i] IN Vokale then Inc(Vo); + Urmenge := Urmenge + [Satz[i]]; + end; + Write('Ausstreichen ... '); + Vokale := Vokale * Urmenge; + Konsonanten := Konsonanten * Urmenge; + Ziffern := Ziffern * Urmenge; + Umlaute := Umlaute * Urmenge; + Sonstige := Sonstige * Urmenge; + WriteLn('fertig!'); +end; + +procedure OutputSet(which: TZeichenMenge); +var Ch: char; +begin + for Ch:=' ' to '' do + if Ch IN which then Write(Ch); + WriteLn; +end; + +procedure Output; +begin + Write(MultiChar('-',80)); + WriteLn('Originalsatz: ',Satz); + WriteLn('Anzahl Buchstaben: ',Bu); + WriteLn('Anzahl Vokale : ',Vo,' -- Konsonanten: ',Bu-Vo); + WriteLn('Anzahl Umlaute : ',Um); + WriteLn('Anzahl Ziffern : ',Zi); + WriteLn('Anzahl Leerzeichn: ',Leer); + WriteLn('Anzahl sonstiges : ',So); + WriteLn; + Write('Vokale : '); OutputSet(Vokale); + Write('Konsonanten: '); OutputSet(Konsonanten); + Write('Umlaute : '); OutputSet(Umlaute); + Write('Ziffern : '); OutputSet(Ziffern); + Write('sonstiges : '); OutputSet(Sonstige); +end; + + +begin + ClrScr; + Input; + Analyze; + Output; +end. \ No newline at end of file diff --git a/ITG/SEARCH.PAS b/ITG/SEARCH.PAS new file mode 100644 index 0000000..d24844d --- /dev/null +++ b/ITG/SEARCH.PAS @@ -0,0 +1,75 @@ +program Searches; + +const max=30000; + +var F: array[1..max] of word; + S4: word; + sp: integer; + comp: integer; + +procedure Init; +var x: word; + i: word; +begin + comp := 0; + x := 0; + for i:=1 to max do begin + x := x + Random(3) + 1; + F[i] := x; + end; +end; + +procedure SearchFor; +var x: integer; +begin + WriteLn('Geben Sie die Arrayposition des zu suchenden Elements ein!'); + Write('(Zahl zwischen 1 und ',max:0,'): '); + ReadLn(x); + S4 := F[x]; + Write('Suche jetzt nach ',S4,' '); +end; + +function bin_searchrekursiv(left, right, key: word): word; +var x,n: word; +begin + Inc(comp); + Write('.'); + if left>right then bin_searchrekursiv:=0 + else begin + x := (left+right) DIV 2; + if key < F[x] then bin_searchrekursiv:=bin_searchrekursiv(left, x-1, key) + else if key > F[x] then bin_searchrekursiv:=bin_searchrekursiv(x+1,right, key) else bin_searchrekursiv := x; + end; +end; + +function bin_searchiterativ(key: word): word; +var left, right, x: word; +begin + left := 1; + right := max; + repeat + x := (left + right) DIV 2; + if keyright); + if key=F[x] then bin_searchiterativ := x + else bin_searchiterativ := 0; +end; + +procedure Stats; +begin + WriteLn(' gefunden an Stelle ',sp:0); + Write(comp:0,' Vergleichsoperation'); + if (comp>1) then WriteLn('en') else WriteLn; +end; + +begin + Randomize; + Init; + SearchFor; + { sp := bin_searchiterativ(S4); } + sp := bin_searchrekursiv(1,max,S4); + Stats; + WriteLn('<=======****=======>'); +end. diff --git a/ITG/SECHSER.PAS b/ITG/SECHSER.PAS new file mode 100644 index 0000000..b728aea --- /dev/null +++ b/ITG/SECHSER.PAS @@ -0,0 +1,50 @@ +program Sechsen; + + +var take: longint; + sixs: longint; + thrw: longint; + succ: boolean; + +function Throw: byte; +begin + Throw := Random(6)+1; +end; + +procedure TripleThrowUntilSix; +var i,t: byte; +begin + Write(take:5,'#',sixs:5,'#',thrw:8,' : '); + succ := false; + for i:=1 to 3 do begin + t:=Throw; + Write(t,' '); + Inc(thrw); + if t=6 then begin + WriteLn; + Inc(sixs); + Inc(take); + Exit; + end; + end; + Inc(take); + WriteLn; +end; + +begin + sixs := 0; + thrw := 0; + take := 0; + Randomize; + repeat + TripleThrowUntilSix; + until take=1000; + WriteLn(' TAKE sixes throws : # # #'); + WriteLn('<===========>'); + WriteLn('Takes: ',take); + WriteLn('Sixes: ',sixs); + WriteLn('Fails: ',thrw-sixs); + WriteLn('Thrws: ',thrw); + WriteLn('Quota of throws: ',(sixs/thrw)*100:3:2,' per cent'); + WriteLn('Quota of takes : ',(sixs/take)*100:3:2,' per cent'); +end. diff --git a/ITG/SORT.PAS b/ITG/SORT.PAS new file mode 100644 index 0000000..1f5b5d7 --- /dev/null +++ b/ITG/SORT.PAS @@ -0,0 +1,202 @@ +program Sorts; + +uses Crt, VFx; + +const max = 200; + +type elementtype = integer; + Arraytype = array[0..max] of elementtype; + +var count: integer; + xarr: arraytype; + oarr: arraytype; + +procedure Banner(what: string); +begin + drwdmax:=0; + DrawBorder(Length(what) DIV 2+5,3,15,1,6); + Write(' ',what); + ReadKey; + Window(1,1,80,50); + TextBackground(0); + ClrScr; +end; + +procedure Check(var f:arraytype); +var i,cnt: integer; +begin + i:=0; + cnt:=0; + repeat + Inc(i); + Inc(cnt); + until (F[i]=0) AND (F[i-1]=0); + F[0] := cnt; +end; + +procedure Init; +begin + TextMode(co80 + Font8x8); + Randomize; +end; + +(*************************************************************************** + ************ Array-Initialisierungen ************************************** + ***************************************************************************) + +procedure Init_clear(var f:arraytype); +var i: integer; +begin + for i:=1 to max do F[i]:=0; +end; + +procedure Init_Random(var f:arraytype); +var i: integer; +begin + { for i:=1 to max do f[i]:=(Random(65535)-32767); } + for i:=1 to max do f[i]:=Random(32768); + F[0]:=max; +end; + +procedure Init_Inc(var f:arraytype); +var i: integer; +begin + for i:=1 to max do F[i]:=i; + F[0]:=max; +end; + +procedure Init_Dec(var f:arraytype); +var i: integer; +begin + for i:=1 to max do F[i]:=max-i+1; + F[0]:=max; +end; + + + +procedure OutArray(f: arraytype; var fo: arraytype); +const maxlines=50; +var i: integer; +begin + for i:=1 to F[0] do begin + if i<=maxlines then GotoXY(1,i) + else if i<=maxlines*2 then GotoXY(20,i-maxlines) + else if i<=maxlines*3 then GotoXY(40,i-maxlines*2) + else if i<=maxlines*4 then GotoXY(60,i-maxlines*3); + TextColor(7); + Write(i:3,': '); + if (F[i]<>Fo[i]) then TextColor(14) else TextColor(7); + Write(F[i]:10); + { Delay(5); } + end; + fo := f; +{ ReadKey; } + Delay(100); +end; + +procedure Swap(var x1,x2: elementtype); +var tmp: elementtype; +begin + tmp := x1; + x1 := x2; + x2 := tmp; +end; + + +procedure Sort_Bubblesort(var f:arraytype); +var i: integer; + canswap: boolean; + tmp: elementtype; +begin + repeat + canswap:=false; + for i:=1 to F[0]-1 do begin + if F[i]>F[i+1] then begin + Swap(F[i],F[i+1]); + canswap := true; + end; + end; + until (NOT canswap); +end; + +procedure Sort_Simple(var f:arraytype); +var i,j: integer; + tmp: elementtype; +begin + for i:=1 to F[0]-1 do + for j:=i+1 to F[0] do + if F[j]2) then Dec(j) else exit; + end; + f[j+1] := h; + OutArray(xarr,oarr); + end; +end; + +procedure Sort_Shellsort(n: integer; var f:arraytype); +var i,j,k,m: integer; + goon: boolean; + hilf: elementtype; +begin + m := n DIV 2; + repeat + for i:=1 to n-m do begin + while f[i+m] < f[i] do begin + hilf := f[i+m]; + j := i; + goon := true; + while (j>0) AND goon do begin + if hilf0 then halt(1); +END; + +{Zufallszahlen erzeugen} +PROCEDURE zufall(n : integer;var a : feld_); +VAR i : integer; + BEGIN + randomize; + for i:=1 to n do + a[i]:=random(n)+1; + END; + + + { "Je nachdem, wie tief die Spalte geht!" (Zitat: Frbel) } +PROCEDURE combsortdar; +VAR x : feld_; + s,s1,s2 : string; + sorted : boolean; + i,j,top,gap,h,n,z,z1,z2 : integer; + + BEGIN + n:=25;z:=0;z1:=0;z2:=0; + setfillstyle(1,0);setcolor(15); + bar(0,0,getmaxx,getmaxy); + zufall(n,x); + for i:=1 to n do begin + str(x[i],s); + if x[i]<10 then s:='0'+s; + outtextxy(50+i*20,100,s); + end; + outtextxy(70,320,'Vergleichsabstand : 25'); + outtextxy(70,300,'Durchgang : 00'); + outtextxy(70,350,'Vertauschungen : 00'); + outtextxy(70,360,'Vergleiche : 00'); + gap:=n; + repeat + inc(z); + gap:=trunc(gap/1.3); { Neue Schrittweite } + if gap=0 then gap:=1 + else + if (gap=9) or (gap=10) then gap:=11; + setcolor(red); + str(gap,s);if gap<10 then s:='0'+s; + bar(230,320,250,330);outtextxy(230,320,s); + setcolor(15); + str(z,s);if z<10 then s:='0'+s; + bar(230,300,250,310);outtextxy(230,300,s); + sorted:=true; { Variable auf "sortiert" setzen } + top:=n-gap; { Obergrenze fr Sortieren festlegen } + for i:=1 to top do begin + inc(z1); + setcolor(15); + str(z1,s);if z1<10 then s:='0'+s; + bar(230,360,250,370);outtextxy(230,360,s); + setcolor(blue); + str(x[i],s1);if x[i]<10 then s1:='0'+s1; + outtextxy(50+i*20,100,s1); + str(x[i+gap],s2);if x[i+gap]<10 then s2:='0'+s2; + outtextxy(50+(i+gap)*20,100,s2); + setcolor(green); + line(60+i*20,95,60+i*20,80); + line(60+(i+gap)*20,95,60+(i+gap)*20,80); + line(60+i*20,80,60+(i+gap)*20,80); + bar(20,65,600,75); + outtextxy(16+round((i+gap/2)*20),65,'VERGLEICHEN'); + delay(100); + bar(20,65,600,75); + if x[i]>x[i+gap] then begin { Vergleich von Elementen im Abstand "gap" } + inc(z2); + setcolor(15); + str(z2,s);if z2<10 then s:='0'+s; + bar(230,350,250,358);outtextxy(230,350,s); + setcolor(green); + outtextxy(16+round((i+gap/2)*20),65,'VERTAUSCHEN'); + for j:=100 to 120 do begin + setcolor(blue); + outtextxy(50+i*20,j,s1); + outtextxy(50+(i+gap)*20,50+j div 2,s2); + delay(1); + bar(50+i*20,j,70+i*20,j+10);bar(50+(i+gap)*20,50+j div 2,70+(i+gap)*20,60+j div 2); + end; + for j:=1 to (gap*20) do begin + setcolor(blue); + outtextxy(50+i*20+j,120,s1); + outtextxy(50+(i+gap)*20-j,110,s2); + delay(1); + bar(50+i*20+j,120,70+i*20+j,130);bar(50+(i+gap)*20-j,110,70+(i+gap)*20-j,120); + end; + for j:=120 downto 100 do begin + setcolor(blue); + outtextxy(50+i*20,j,s1); + outtextxy(50+(i+gap)*20,50+j div 2,s2); + delay(1); + bar(50+i*20,j,70+i*20,j+10);bar(50+(i+gap)*20,50+j div 2,70+(i+gap)*20,60+j div 2); + end; + bar(20,65,600,75); + h:=x[i];x[i]:=x[i+gap];x[i+gap]:=h; { Vertauschung, wenn "falsch" } + sorted:=false; { Variable auf "nicht fertig sortiert" setzen } + end; + setcolor(0); + line(60+i*20,95,60+i*20,80); + line(60+(i+gap)*20,95,60+(i+gap)*20,80); + line(60+i*20,80,60+(i+gap)*20,80); + setcolor(15); + str(x[i],s1);if x[i]<10 then s1:='0'+s1; + outtextxy(50+i*20,100,s1); + str(x[i+gap],s2);if x[i+gap]<10 then s2:='0'+s2; + outtextxy(50+(i+gap)*20,100,s2); + end; + until sorted and (gap=1); + END; + +PROCEDURE auswahl; +VAR c : char; + BEGIN + repeat + setfillstyle(1,0); + bar(0,0,getmaxx,getmaxy); + setcolor(15); + outtextxy(260,100,'C O M B S O R T'); + outtextxy(260,120,'###############'); + outtextxy(220,200,'1...DEMONSTRATION'); + outtextxy(220,220,'2...ENDE'); + + repeat + c:=readkey; + until c<>''; + case c of + '1': combsortdar; + end; + until c='2'; + END; +BEGIN + graf; + auswahl; + closegraph; +END. diff --git a/ITG/TEST1_02.PAS b/ITG/TEST1_02.PAS new file mode 100644 index 0000000..e289e40 --- /dev/null +++ b/ITG/TEST1_02.PAS @@ -0,0 +1,29 @@ +program SortName; + +uses Crt; + +var Nam: array[1..3] of string; + i: integer; + +procedure Swap(var i1,i2: string); +var tmp: string; +begin + tmp := i1; + i1 := i2; + i2 := tmp; +end; + +begin + for i:=1 to 3 do begin + Write('Geben Sie den ',i,'. Namen ein: '); + ReadLn(Nam[i]); + end; + if Nam[3]ylen then max:=xlen else max:=ylen; + DDel:=400 DIV max; + for i:=0 to max do begin + tox:=(xlen*i) DIV max; + toy:=(ylen*i) DIV max; + + for j:=0 to 100 do begin + xc := (x1+(tox*(100-j) DIV 100)); + yc := (y1+(toy*j DIV 100)); + if (xc>x1) AND (yc>y1) AND (xcx1) AND (yc>y1) AND (xc=1) AND (ay<=20) AND (ax>=1) AND (ax<=20) then Write(Quadrat[ay,ax]); + case dir of + 1: Dec(ay); + 2: begin Inc(ax); Dec(ay); end; + 3: Inc(ax); + 4: begin Inc(ax); Inc(ay); end; + 5: Inc(ay); + 6: begin Dec(ax); Inc(ay); end; + 7: Dec(ax); + 8: begin Dec(ax); Dec(ay); end; + end; + Dec(i); + until i=0; + Delay(30); + TextBackground(0); + TextColor(15); +end; + +procedure Search(what: string); +var i,j,k: byte; + ox,oy: byte; + tmp: string; +begin + TextBackground(0); + ox:=1; + oy:=1; + for i:=1 to 20 do begin + for j:=1 to 20 do begin + (* Mark(j,i,1,1,9,1); *) + if (Quadrat[i,j]=what[1]) then begin + for k:=1 to 8 do begin + tmp:=Get(j,i,k,Length(what)); + (* Mark(j,i,k,Length(what),0,1); *) + if tmp=what then begin + Window(5,30,75,46); + GotoXY(ox,oy); + Inc(times); + WriteLn('Hab ''',what,''' bei (',j:2,'|',i:2,') gefunden. Richtung ',k,', Lnge ',Length(what)); + ox:=WhereX; oy:=WhereY; + Window(1,1,80,50); + Mark(j,i,k,Length(what),0,7); + Delay(50); + end; + (* Mark(j,i,k,Length(what),15,1); *) + end; + end; + (* Mark(j,i,1,1,15,1); *) + end; + end; + window(5,30,75,46); + GotoXY(ox,oy); + if (times=0) then begin + WriteLn('Hab nix gefunden - versuch'' was anderes.'); + end; +end; + +procedure ClearErg; +begin + DrawBorder(3,28,77,47,DesktopCol,DesktopCol); + DrawBorder(3,28,77,47,15,0); +end; + +begin + Init; + repeat + times:=0; + { WriteMash; } + ClearErg; + Input; + if (whats<>'') then begin + Search(whats); + WriteLn; + WriteLn('[ Taste drcken, um fort zu fahren ]'); + window(1,1,80,50); + ReadKey; + end; + until whats=''; + Outit; +end. \ No newline at end of file diff --git a/ITG/TIMECALC.PAS b/ITG/TIMECALC.PAS new file mode 100644 index 0000000..2d7e3a7 --- /dev/null +++ b/ITG/TIMECALC.PAS @@ -0,0 +1,137 @@ +program TimeCalc; { Unterrichtsstoff der 12. Klasse - Lsung von Markus Birth } + +uses Crt,Strings; + +var tstr: string[40]; + h1,m1,s1,hs1: integer; + h2,m2,s2,hs2: integer; + hf,mf,sf,hsf: integer; + +procedure GetData(which: string;var h,m,s,hs: integer); +var i,ec,tmp,oldi: integer; +begin + Write('Geben Sie die ',which,' Zeit ein [hh:mm.ss,tt]: '); + ReadLn(tstr); + oldi := 1; + for i:=1 to Length(tstr) do begin + if ((tstr[i]=':') OR (tstr[i]='.') OR (tstr[i]=',')) then begin + Val(Copy(tstr,oldi,i-oldi),tmp,ec); + oldi := i+1; + case tstr[i] of + ':': h:=tmp; + '.': m:=tmp; + ',': s:=tmp; + end; + end; + end; + Val(Copy(tstr,oldi,Length(tstr)-oldi+1),tmp,ec); + hs:=tmp; +end; + +procedure AddData(h1,m1,s1,hs1,h2,m2,s2,hs2: integer; var hf,mf,sf,hsf: integer; Add: boolean); +begin + if Add then begin + hsf := hs1 + hs2; + sf := s1 + s2; + mf := m1 + m2; + hf := h1 + h2; + + sf := sf + hsf DIV 100; + hsf := hsf MOD 100; + + mf := mf + sf DIV 60; + sf := sf MOD 60; + + hf := hf + mf DIV 60; + mf := mf MOD 60; + end else begin + hsf := hs1 - hs2; + sf := s1 - s2; + mf := m1 - m2; + hf := h1 - h2; + + while hsf<0 do begin + hsf := hsf + 100; + sf := sf - 1; + end; + + while sf<0 do begin + sf := sf + 60; + mf := mf - 1; + end; + + while mf<0 do begin + mf := mf + 60; + hf := hf - 1; + end; + end; +end; + +procedure TimeOut(h,m,s,t: integer); +begin + WriteLn(h:2,':',m:2,'.',s:2,'''',t:2,''''''); +end; + +procedure DataOut(Add: boolean); +begin + Write(' '); + TimeOut(h1,m1,s1,hs1); + if Add then Write('+') else Write('-'); + TimeOut(h2,m2,s2,hs2); + WriteLn(''); + AddData(h1,m1,s1,hs1,h2,m2,s2,hs2,hf,mf,sf,hsf,Add); + Write(' '); + TimeOut(hf,mf,sf,hsf); + WriteLn(''); +end; + +procedure SwapVals(var h1,m1,s1,t1,h2,m2,s2,t2: integer); +var tmp: integer; +begin + tmp := h1; + h1 := h2; + h2 := tmp; + + tmp := m1; + m1 := m2; + m2 := tmp; + + tmp := s1; + s1 := s2; + s2 := tmp; + + tmp := t1; + t1 := t2; + t2 := tmp; +end; + +procedure Time2Secs(h,m,s: integer; var sec: longint); +begin + sec := h*3600 + m*60 + s; +end; + +procedure Secs2Time(sec: longint; var h,m,s: integer); +begin + h := sec div 3600; + sec := sec mod 3600; + m := sec div 60; + s := sec mod 60; +end; + +begin + ClrScr; + GetData(' erste',h1,m1,s1,hs1); + GetData('zweite',h2,m2,s2,hs2); + Window(1,4,26,10); + DataOut(true); + Window(26,4,52,10); + DataOut(false); + Window(52,4,78,10); + SwapVals(h1,m1,s1,hs1,h2,m2,s2,hs2); + DataOut(false); + Window(1,1,80,25); + GotoXY(1,11); + WriteLn; + WriteLn('*** Bitte drcken Sie eine Taste ***'); + ReadKey; +end. diff --git a/ITG/VISUAL.PAS b/ITG/VISUAL.PAS new file mode 100644 index 0000000..fef841b --- /dev/null +++ b/ITG/VISUAL.PAS @@ -0,0 +1,347 @@ +program Visualization; + +uses Crt, Graph, BGIP; + +const CompareColor = 14; + HaveToSwapC = 12; + MarkDelay = 500; + Bool_Active = 11; + Bool_AText = 0; + Bool_Disabl = 9; + Bool_DText = 15; + +var xmax, ymax, xmed, ymed: word; + xarr: array[1..10] of byte; + +procedure InitGraphics; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; +end; + +procedure Outit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +function V2S(x: byte): string; +var tmp: string; +begin + Str(x,tmp); + V2S := tmp; +end; + +procedure SwapVal(var x1,x2: integer); +var tmp: integer; +begin + tmp := x1; + x1 := x2; + x2 := tmp; +end; + +procedure SwapValB(var x1,x2: byte); +var tmp: byte; +begin + tmp := x1; + x1 := x2; + x2 := tmp; +end; + +procedure InitArray; +var i: byte; +begin + Randomize; + for i:=1 to 10 do xarr[i] := Random(256); +end; + +procedure MakeBox(el: byte;x,y: integer); +var tw: word; +begin + SetTextJustify(CenterText,CenterText); + tw := TextWidth(V2S(xarr[el])); + SetFillStyle(SolidFill,1); + Bar(x-tw DIV 2-2,y-5,x+tw DIV 2+2,y+5); + SetColor(11); + SetLineStyle(SolidLn,0,NormWidth); + Rectangle(x-tw DIV 2-2,y-5,x+tw DIV 2+2,y+5); + SetColor(15); + OutTextXY(x,y+1,V2S(xarr[el])); +end; + +procedure ClearBox(el: byte;x,y: integer); +var tw: word; +begin + SetFillStyle(SolidFill,0); + tw := TextWidth(V2S(xarr[el])); + Bar(x-tw DIV 2-2,y-5,x+tw DIV 2+2,y+5); +end; + +procedure OutArrayPlain(title: string); +var i: byte; +begin + ClearViewPort; + for i:=1 to 10 do begin + MakeBox(i,64*i-32,40); + SetColor(7); + OutTextXY(64*i-32,30,V2S(i)); + end; + SetColor(14); + OutTextXY(320,15,title); +end; + +procedure Mark(el,col: byte); +var tw: word; + x : integer; +begin + tw := TextWidth(V2S(xarr[el])); + x := 64*el-32; + SetColor(col); + SetLineStyle(SolidLn,0,ThickWidth); + Line(x-tw DIV 2-2,48,x+tw DIV 2+2,48); +end; + +procedure Connect(el1,el2,col,depth: byte); +var x: integer; +begin + SetColor(col); + Mark(el1,col); + Mark(el2,col); + x := 64*el1-32; + MoveTo(x,49); + SetLineStyle(SolidLn,0,NormWidth); + LineTo(x,49+depth*20); + x := 64*el2-32; + LineTo(x,49+depth*20); + LineTo(x,49); +end; + +procedure ClearConns; +begin + SetFillStyle(SolidFill,0); + Bar(5,47,635,149); +end; + +procedure Swap(el1,el2: byte); +var i: integer; + x1,x2: integer; + lo,hi: integer; + m1,m2: integer; + SwapDelay: integer; +begin + if (el1=el2) then Exit; + x1 := 64*el1-32; + x2 := 64*el2-32; + if (x20) then begin + Mark(el,10); + SetLineStyle(SolidLn,0,NormWidth); + MoveTo(64*el-32,49); + LineTo(64*el-32,320+depth*10); + LineTo(TextWidth(OT)+10,320+depth*10); + Delay(MarkDelay); + SetColor(0); + MoveTo(64*el-32,49); + LineTo(64*el-32,320+depth*10); + LineTo(TextWidth(OT)+10,320+depth*10); + SetColor(CompareColor); + MoveTo(64*el-32,49); + LineTo(64*el-32,69); + Mark(el,CompareColor); + end; +end; + +procedure Bool(text1,text2: string;what: boolean;depth: byte); +var OT: string; +begin + SetTextJustify(CenterText,CenterText); + if (what) then begin + SetFillStyle(SolidFill,Bool_Active); + SetColor(Bool_AText); + OT := text1; + end else begin + SetFillStyle(SolidFill,Bool_Disabl); + SetColor(Bool_DText); + OT := text2; + end; + Bar(320,240+(depth-1)*20,639,240+(depth)*20); + OutTextXY(480,240+(depth)*20-10,OT); +end; + +{########################################################################### + ########################################################################### + ##################### SORTIER ALGORITHMEN ################################# + ########################################################################### + ###########################################################################} + +procedure Sort_Simple; +var i,j: integer; +begin + for i:=1 to 9 do + for j:=i+1 to 10 do begin + Connect(i,j,CompareColor,1); + Delay(MarkDelay); + if xarr[j]minpos) then begin + Connect(i,minpos,HaveToSwapC,1); + Delay(MarkDelay); + ClearConns; + end; + Swap(i,minpos); + end; +end; + +procedure Sort_Bubblesort; +var i: integer; + canswap: boolean; +begin + repeat + canswap:=false; + Bool('Konnte was tauschen','Konnte (noch) nichts tauschen',canswap,1); + for i:=1 to 9 do begin + Connect(i,i+1,CompareColor,1); + Delay(MarkDelay); + if xarr[i]>xarr[i+1] then begin + Connect(i,i+1,HaveToSwapC,1); + Delay(MarkDelay); + ClearConns; + Bool('TAUSCHE','',true,1); + Swap(i,i+1); + canswap := true; + end; + Bool('Konnte was tauschen','Konnte (noch) nichts tauschen',canswap,1); + ClearConns; + end; + until (NOT canswap); +end; + + + + + + +{########################################################################### + ########################################################################### + ######################### DER LETZTE REST ################################# + ########################################################################### + ###########################################################################} + +procedure WaitForKey; +var x: byte; +begin + repeat + x := Random(16); + SetColor(x); + SetTextJustify(CenterText,CenterText); + OutTextXY(320,240,'SORTIERUNG ABGESCHLOSSEN - bitte eine Taste drcken'); + Delay(1); + until keypressed; + ReadKey; +end; + +procedure Simplest_DEMO; +begin + InitArray; + OutArrayPlain('einfachste Sortierung'); + Sort_Simple; + WaitForKey; +end; + +procedure Selection_DEMO; +begin + InitArray; + OutArrayPlain('Selectionsort'); + Sort_Selectionsort; + WaitForKey; +end; + +procedure Bubble_DEMO; +begin + InitArray; + OutArrayPlain('Bubblesort'); + Sort_Bubblesort; + WaitForKey; +end; + +begin + InitGraphics; + { Simplest_DEMO; } + Selection_DEMO; + Bubble_DEMO; + Outit; +end. diff --git a/ITG/VISUAL2.INI b/ITG/VISUAL2.INI new file mode 100644 index 0000000..fd72f29 --- /dev/null +++ b/ITG/VISUAL2.INI @@ -0,0 +1,35 @@ +D:\LANG\BP\BGI +2000 +15 +8 +5 +0 +1 +50 +1 +10 +30 +0 +1 +10 +0 + +INI-Datei fr VISUAL2.EXE (bzw. VISUAL2.PAS) + + Copyright (c)1999 by Markus Birth + + 1. Zeile: BGI-Path + 2. Zeile: Pre-Delay vor Grafikanzeige + 3. Zeile: Punktfarbe + 4. Zeile: Spurfarbe + 5. Zeile: einfachstes Sort (normal): -Faktor + 6. -Delay + 7. Zeile: einfachstes Sort (quick): -Faktor + 8. -Delay + 9. Zeile: Selectionsort: -Faktor +10. -Delay +11. Zeile: Bubblesort: -Faktor +12. -Delay +13. Zeile: Quicksort: -Faktor +14. -Delay +15. Zeile: Arraytype (0-Random, 1-aufsteigend, 2-absteigend) diff --git a/ITG/VISUAL2.PAS b/ITG/VISUAL2.PAS new file mode 100644 index 0000000..b916c5b --- /dev/null +++ b/ITG/VISUAL2.PAS @@ -0,0 +1,926 @@ +program Visualization2; + +uses Crt, Graph, VFx, BGIP; + +const cnt: byte=0; + abo: boolean=false; + firstrun: boolean=true; + Simple_quick:boolean=false; + DataFile='visual2.ini'; + Arraytypes: array[0..2] of string[20]=('zufall','aufsteigend','absteigend'); + +var xmax, ymax, xmed, ymed: word; + xarr,oarr: array[0..639] of integer; + pretime, opretime: integer; + slow_, fact_, oslow_, ofact_: array[1..11] of integer; + slow,fact: integer; + sel: byte; + DotCol, TrailCol, oDotCol, oTrailCol: byte; + {BGIPath,} oBGIPath: string; + Arraytype, oArraytype, OAT: byte; + +function GetIniString(line: byte): string; +var f: text; + i: integer; + tmp: string; +begin + Assign(f,DataFile); + {$I-} + Reset(f); + if IOResult<>0 then begin + TextMode(co80); + WriteLn('Fehler beim Lesen der ',Datafile,' ... existiert die auch?'); + WriteLn('... und sind wir auch im richtigen Verzeichnis????'); + WriteLn; + WriteLn('Egal ... ich leg'' mir selbst eine an ... '); + Rewrite(f); + if IOResult<>0 then begin + WriteLn('Scheie ... nicht mal das geht auf diesem Sau-Rechner ...'); + WriteLn('Mut wohl doch DU das Problem lsen .... sieh'' mal zu, da'); + WriteLn('Du mehr Rechte auf dieses Verzeichnis bekommst!'); + WriteLn; + Halt; + end; + WriteLn(f,'D:\BP\BGI'); + WriteLn(f,'2000'); + WriteLn(f,'15'); + WriteLn(f,'8'); + WriteLn(f,'5'); + WriteLn(f,'0'); + WriteLn(f,'1'); + WriteLn(f,'50'); + WriteLn(f,'1'); + WriteLn(f,'10'); + WriteLn(f,'30'); + WriteLn(f,'0'); + WriteLn(f,'1'); + WriteLn(f,'10'); + WriteLn(f,'0'); + WriteLn(f,''); + WriteLn(f,'INI-Datei fr VISUAL2.EXE (bzw. VISUAL2.PAS)'); + WriteLn(f,''); + WriteLn(f,' Copyright (c)1999 by Markus Birth '); + WriteLn(f,''); + WriteLn(f,' 1. Zeile: BGI-Path'); + WriteLn(f,' 2. Zeile: Pre-Delay vor Grafikanzeige'); + WriteLn(f,' 3. Zeile: Punktfarbe'); + WriteLn(f,' 4. Zeile: Spurfarbe'); + WriteLn(f,' 5. Zeile: einfachstes Sort (normal): -Faktor'); + WriteLn(f,' 6. -Delay'); + WriteLn(f,' 7. Zeile: einfachstes Sort (quick): -Faktor'); + WriteLn(f,' 8. -Delay'); + WriteLn(f,' 9. Zeile: Selectionsort: -Faktor'); + WriteLn(f,'10. -Delay'); + WriteLn(f,'11. Zeile: Bubblesort: -Faktor'); + WriteLn(f,'12. -Delay'); + WriteLn(f,'13. Zeile: Quicksort: -Faktor'); + WriteLn(f,'14. -Delay'); + WriteLn(f,'15. Zeile: Arraytype (0-Random, 1-aufsteigend, 2-absteigend)'); + Close(f); + WriteLn('Sooo, das wre geschafft! Wenn Du jetzt das Programm nocheinmal'); + WriteLn('aufrufst, mte alles funktionieren!'); + Halt; + end; + {$I+} + for i:=1 to line do ReadLn(f,tmp); + Close(f); + GetIniString := tmp; +end; + +function Str2Val(st: string): integer; +var tmp, ec: integer; +begin + Val(st,tmp,ec); + if (ec<>0) then begin + TextMode(co80); + WriteLn('Fehler beim Umwandeln eines Strings in einen numerischen Wert.'); + WriteLn('Stimmen die Eintrge in der INI-Datei??'); + Halt; + end; + Str2Val := tmp; +end; + +procedure ReadIni; +var tmp: string; +begin + BGIPath := GetIniString(1); + pretime := Str2Val(GetIniString(2)); + DotCol := Str2Val(GetIniString(3)); + TrailCol := Str2Val(GetIniString(4)); + fact_[1] := Str2Val(GetIniString(5)); + slow_[1] := Str2Val(GetIniString(6)); + fact_[11] := Str2Val(GetIniString(7)); + slow_[11] := Str2Val(GetIniString(8)); + fact_[2] := Str2Val(GetIniString(9)); + slow_[2] := Str2Val(GetIniString(10)); + fact_[3] := Str2Val(GetIniString(11)); + slow_[3] := Str2Val(GetIniString(12)); + fact_[4] := Str2Val(GetIniString(13)); + slow_[4] := Str2Val(GetIniString(14)); + Arraytype := Str2Val(GetIniString(15)); +end; + +procedure InitGraphics; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; +end; + +procedure Outit; +begin + TextBackground(0); + ClrScr; + WriteLn('Dieses Programm wurde Ihnen prsentiert von ..... nein, nicht Krombacher!'); + WriteLn('Aber dafr von Markus Birth, Schler der 12. Klasse im Jahrgang 1998/99'); + WriteLn; + WriteLn; + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +function V2S(x: byte): string; +var tmp: string; +begin + Str(x,tmp); + V2S := tmp; +end; + +procedure SwapVal(var x1,x2: integer); +var tmp: integer; +begin + tmp := x1; + x1 := x2; + x2 := tmp; +end; + +function InArray(what: integer): boolean; +var i: word; + tmp: boolean; +begin + tmp := false; + for i:=0 to 639 do begin + if xarr[i]=what then begin + tmp := true; + Exit; + end; + end; + InArray := tmp; +end; + +procedure InitArray; +var i: word; + tmp: integer; +begin + Randomize; + for i:=0 to 639 do begin + case Arraytype of + 0: xarr[i] := Random(480); + 1: if (i<480) then xarr[i] := i else xarr[i] := 479; + 2: if (i<480) then xarr[i] := 479-i else xarr[i] := 0; + end; + oarr[i] := xarr[i]; + end; +end; + +procedure OutArray; +var i: word; +begin + if (keypressed) then begin + abo := true; + Exit; + end; + Inc(cnt); + if (cnt>=fact) then begin + cnt := 0; + for i:=0 to 639 do begin + PutPixel(i,479-oarr[i],TrailCol); + PutPixel(i,479-xarr[i],DotCol); + oarr[i]:=xarr[i]; + end; + Delay(slow); + end; +end; + +procedure PutBigPixel(x,y: word;c: byte); +begin + PutPixel(x-1,y-1,c); + PutPixel(x-1,y,c); + PutPixel(x-1,y+1,c); + PutPixel(x,y-1,c); + PutPixel(x,y,c); + PutPixel(x,y+1,c); + PutPixel(x+1,y-1,c); + PutPixel(x+1,y,c); + PutPixel(x+1,y+1,c); +end; + + +{########################################################################### + ########################################################################### + ##################### SORTIER ALGORITHMEN ################################# + ########################################################################### + ###########################################################################} + +procedure Sort_Simple; +var i,j: integer; + yi,yj: integer; +begin + for i:=0 to 638 do begin + for j:=i+1 to 639 do begin + yi := 479-xarr[i]; + yj := 479-xarr[j]; + { PutBigPixel(j,yj,12); } + if xarr[j]xarr[i+1] then begin + SwapVal(xarr[i],xarr[i+1]); + OutArray; + canswap := true; + end; + if (abo) then Exit; + end; + until (NOT canswap) OR (abo); +end; + +{#################################} + +procedure Sort_Insertionsort; +var h,i,j: integer; +begin + for i:=2 to 638 do begin + h := xarr[i]; + xarr[0] := h; + j := i-1; + while h2) then Dec(j) else exit; + end; + xarr[j+1] := h; + if (abo) then Exit; + end; +end; + + + +procedure Sort_QuickSort(sta,sto: integer; var f: array of integer); +var li, re: integer; + h, vgl: integer; +begin + li:=sta; re:=sto; vgl:=f[(li+re) DIV 2]; + + if livgl do Dec(re); + if li<=re then begin + SwapVal(f[li],f[re]); + inc(li); dec(re); + OutArray; + end; + until (li>re) OR (abo); + if (NOT abo) then begin + Sort_QuickSort(sta,re,f); + Sort_QuickSort(li,sto,f); + end; + end; +end; + + + + + +{########################################################################### + ########################################################################### + ######################### DER LETZTE REST ################################# + ########################################################################### + ###########################################################################} + +procedure WaitForKey; +var x: byte; +begin + repeat + x := Random(16); + SetColor(x); + SetTextJustify(CenterText,CenterText); + OutTextXY(320,240,'SORTIERUNG ABGESCHLOSSEN - bitte eine Taste drcken'); + Delay(1); + until keypressed; + ReadKey; +end; + +procedure DoIt(what: byte); +begin + InitArray; + InitGraphics; + OutArray; + Delay(pretime); + slow := slow_[what]; + fact := fact_[what]; + case what of + 1: Sort_Simple; + 11: begin + Simple_quick := true; + Sort_Simple; + end; + 2: Sort_Selectionsort; + 3: Sort_Bubblesort; + 4: Sort_Quicksort(0,639,xarr); + end; + cnt := fact; + OutArray; + ReadyBeep; + ReadKey; + TextMode(co80); +end; + +function KeyValid(sel: char): boolean; +begin + if (sel IN ['A'..'E','a'..'e','s','S','X','x']) then KeyValid := true + else KeyValid := false; +end; + +procedure UpdateAType; +var ofxwd: integer; +begin + ofxwd := fxwd; + fxwd := 650; + if (OAT<>255) then begin + GotoXY(46,20); + WriteLR(Arraytypes[OAT],1); + end; + GotoXY(46,20); + WriteLR(Arraytypes[ArrayType],15); + OAT := ArrayType; + fxwd := ofxwd; +end; + +function Menu: byte; +var sel: char; +begin + OAT := 255; + TextBackground(0); + TextMode(co80 + Font8x8); + ClrScr; + DrawBorder2(1,1,79,50,11,1); + if firstrun then fxwd := 650 else fxwd := 10; + GotoXY(1,3); + TextColor(8); + CursorOff; + WriteC('--==+ Visualization 2 +==--'); + Delay(300); + FXWriteC('--==+ Visualization 2 +==--',15); + GotoXY(29,6); FXWrite('[ ] Simplesort (normal)',11); + GotoXY(29,8); FXWrite('[ ] Simplesort (quick)',11); + GotoXY(29,10); FXWrite('[ ] Selectionsort',11); + GotoXY(29,12); FXWrite('[ ] Bubblesort',11); + GotoXY(29,14); FXWrite('[ ] Quicksort',11); + GotoXY(29,20); FXWrite('[ ] Zahlenfolge: ',11); + GotoXY(29,24); FXWrite('[ ] Voreinstellungen ndern',11); + GotoXY(29,26); FXWrite('[ ] Programm beenden',11); + fxwd := 10; + GotoXY(30,6); FXWrite('A',14); + GotoXY(30,8); FXWrite('B',14); + GotoXY(30,10); FXWrite('C',14); + GotoXY(30,12); FXWrite('D',14); + GotoXY(30,14); FXWrite('E',14); + GotoXY(30,20); FXWrite('T',14); + GotoXY(30,24); FXWrite('S',14); + GotoXY(30,26); FXWrite('X',14); + if firstrun then fxwd := 650; + UpdateAType; + firstrun := false; + GotoXY(1,30); + FXWriteC('Drcken Sie einen der gelben Buchstaben (auf der Tastatur).',7); + Menu := 0; + repeat + sel := ReadKey; + if (NOT KeyValid(sel)) AND NOT (sel IN ['t','T']) then begin + Sound(400); + Delay(100); + NoSound; + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + if (sel IN ['t','T']) then begin + Inc(ArrayType); + if (ArrayType>2) then ArrayType := 0; + UpdateAType; + end; + until KeyValid(sel); + case sel of + 'a','A': Menu := 1; + 'b','B': Menu := 2; + 'c','C': Menu := 3; + 'd','D': Menu := 4; + 'e','E': Menu := 5; + 'x','X': Menu := 0; + 's','S': Menu := 128; + end; +end; + +procedure WriteLet(b: char;text: string;c: byte); +begin + TextColor(c); + Write('['); + TextColor(14); + Write(UpCase(b)); + TextColor(c); + Write('] ',text); +end; + +procedure OutSetup; +begin + GotoXY(5,10); WriteLet('A','BGI-Pfad: ',10); + TextColor(15); Write(BGIPath); + GotoXY(5,12); WriteLet('B','Pre-Delay: ',10); + TextColor(15); Write(pretime:0); + GotoXY(30,12); WriteLet('C','Punktfarbe: ',10); + TextColor(15); Write(DotCol:3,' '); + TextColor(DotCol); Write(''); + GotoXY(55,12); WriteLet('D','Spurfarbe: ',10); + TextColor(15); Write(TrailCol:3,' '); + TextColor(TrailCol); Write(''); + GotoXY(5,15); WriteLet('E','einfachstes Sort (normal)',11); + GotoXY(45,15); WriteLet('F','einfachstes Sort (quick)',11); + GotoXY(5,19); WriteLet('G','Selectionsort',11); + GotoXY(45,19); WriteLet('H','Bubblesort',11); + GotoXY(5,23); WriteLet('I','Quicksort',11); + TextColor(8); + GotoXY(45,25); Write('Zahlenfolge: ',ArrayTypes[ArrayType]); + GotoXY(11,16); Write('Faktor: ',fact_[1]); + GotoXY(11,17); Write('Delay : ',slow_[1]); + GotoXY(51,16); Write('Faktor: ',fact_[11]); + GotoXY(51,17); Write('Delay : ',slow_[11]); + GotoXY(11,20); Write('Faktor: ',fact_[2]); + GotoXY(11,21); Write('Delay : ',slow_[2]); + GotoXY(51,20); Write('Faktor: ',fact_[3]); + GotoXY(51,21); Write('Delay : ',slow_[3]); + GotoXY(11,24); Write('Faktor: ',fact_[4]); + GotoXY(11,25); Write('Delay : ',slow_[4]); + GotoXY(7,47); + WriteLet('O','Eingaben bernehmen',15); Write(' '); + WriteLet('S','Eingaben sichern',15); Write(' '); + WriteLet('X','Abbrechen',15); +end; + +function Setup_KeyValid(what: char): boolean; +begin + if (what IN ['A'..'I','a'..'i','o','O','s','S','x','X']) then Setup_KeyValid:=true + else Setup_KeyValid := false; +end; + +procedure DoHelp; +begin + window(5,28,75,45); + TextBackground(1); + ClrScr; + window(6,29,74,44); + TextColor(14); + WriteLn('--==+ HILFE +==--'); + WriteLn; + TextColor(15); +end; + +procedure HelpDone; +begin + window(1,1,80,50); + TextBackground(2); +end; + +procedure ClearHelp; +begin + window(5,28,75,45); + TextBackground(2); + ClrScr; + window(1,1,80,50); +end; + +procedure Setup_GetVal(var v: integer); +var tmp: string; + tmp2, ec: integer; + wx, wy: word; +begin + wx := WhereX; + wy := WhereY; + repeat + GotoXY(wx,wy); + Write(Space(10)); + GotoXY(wx,wy); + ReadLn(tmp); + Val(tmp,tmp2,ec); + if (ec<>0) then ErrorBeep; + until (tmp='') OR (ec=0); + if (tmp<>'') then v := tmp2; + AckBeep; +end; + +procedure Setup_GetByte(var v: byte); +var tmp: string; + tmp2, ec: integer; + wx, wy: word; +begin + wx := WhereX; + wy := WhereY; + repeat + GotoXY(wx,wy); + Write(Space(5)); + GotoXY(wx,wy); + ReadLn(tmp); + Val(tmp,tmp2,ec); + if (ec<>0) then ErrorBeep; + until (tmp='') OR (ec=0); + if (tmp<>'') then v := tmp2; + AckBeep; +end; + +procedure Setup_BGIpath; +var tmp: string; +begin + GotoXY(5,10); + TextColor(10+blink); Write('[ ]'); + GotoXY(6,10); + TextColor(14+blink); Write('A'); + DoHelp; + WriteLn('Geben Sie den Pfad zu den BGI-Dateien an.'); + WriteLn; + WriteLn('Beispiel: C:\SCHULS~1\TP\BGI'); + WriteLn; + WriteLn('Um den alten Wert zu behalten, einfach [ENTER] drcken.'); + HelpDone; + GotoXY(19,10); Write(Space(50)); + GotoXY(19,10); + TextColor(15); + ReadLn(tmp); + if (tmp<>'') then BGIpath := tmp; + ClearHelp; + GotoXY(5,10); TextColor(10); Write('[ ]'); + GotoXY(6,10); TextColor(14); Write('A'); + GotoXY(19,10);TextColor(15); Write(BGIpath); +end; + +procedure Setup_PreDelay; +var tmp: string; + tmp2, ec: integer; +begin + GotoXY(5,12); + TextColor(10+blink); Write('[ ]'); + GotoXY(6,12); + TextColor(14+blink); Write('B'); + DoHelp; + WriteLn('Geben Sie die Zeit an, die vor der Grafikanzeige gewartet werden'); + WriteLn('soll. Dies ist bei den neueren Monitoren ntig, da sie einige'); + WriteLn('Zeit bentigen, um in den Grafikmodus zu schalten.'); + WriteLn; + WriteLn('Beispiel: 2000 - fr 2 Sekunden'); + WriteLn; + WriteLn('Um den alten Wert zu behalten, einfach [ENTER] drcken.'); + HelpDone; + GotoXY(20,12); TextColor(15); + Setup_GetVal(pretime); + ClearHelp; + GotoXY(5,12); TextColor(10); Write('[ ]'); + GotoXY(6,12); TextColor(14); Write('B'); + GotoXY(20,12); Write(Space(10)); + GotoXY(20,12);TextColor(15); Write(pretime:0); +end; + +procedure ColTab; +begin + WriteLn(' 0 1 2 3 4 5 6 7'); + CWriteLn('%%0#%%1#%%2#%%3#%%4#%%5#%%6#%%7#'); + CWriteLn('%%8#%%9#%%10#%%11#%%12#%%13#%%14#%%15#'); + WriteLn(' 8 9 10 11 12 13 14 15'); +end; + +procedure Setup_DotCol; +var tmp: string; + tmp2,ec: integer; +begin + GotoXY(30,12); + TextColor(10+blink); Write('[ ]'); + GotoXY(31,12); + TextColor(14+blink); Write('C'); + DoHelp; + WriteLn('Geben Sie die Farbe fr die aktiven Punkte an.'); + WriteLn; + WriteLn('Die Zahl mu zwischen 0 und 255 liegen.'); + WriteLn('Um den alten Wert zu behalten, einfach [ENTER] drcken.'); + WriteLn; + WriteLn('Beispiele:'); + WriteLn; + ColTab; + HelpDone; + GotoXY(46,12); TextColor(15); + Setup_GetByte(DotCol); + ClearHelp; + GotoXY(30,12); TextColor(10); Write('[ ]'); + GotoXY(31,12); TextColor(14); Write('C'); + GotoXY(46,12); Write(Space(5)); + GotoXY(46,12);TextColor(15); Write(DotCol:3,' '); TextColor(DotCol); Write(''); +end; + +procedure Setup_TrailCol; +var tmp: string; + tmp2,ec: integer; +begin + GotoXY(55,12); + TextColor(10+blink); Write('[ ]'); + GotoXY(56,12); + TextColor(14+blink); Write('D'); + DoHelp; + WriteLn('Geben Sie die Farbe fr die ehemaligen Punkte an.'); + WriteLn; + WriteLn('Die Zahl mu zwischen 0 und 255 liegen. 0 deaktiviert die Funktion.'); + WriteLn('Um den alten Wert zu behalten, einfach [ENTER] drcken.'); + WriteLn; + WriteLn('Beispiele:'); + WriteLn; + ColTab; + HelpDone; + GotoXY(70,12); TextColor(15); + Setup_GetByte(TrailCol); + ClearHelp; + GotoXY(55,12); TextColor(10); Write('[ ]'); + GotoXY(56,12); TextColor(14); Write('D'); + GotoXY(70,12); Write(Space(5)); + GotoXY(70,12);TextColor(15); Write(TrailCol:3,' '); TextColor(TrailCol); Write(''); +end; + +procedure Setup_Algos(x,y: word;c: char;t: string;no: byte); +var key: char; +begin + GotoXY(x,y); TextColor(11+blink); Write('[ ]'); + GotoXY(x+1,y); TextColor(14+blink); Write(c); + GotoXY(x+4,y); TextColor(15); Write(t); + GotoxY(x+2,y+1); WriteLet('1','Faktor:',11); + TextColor(15); Write(' ',fact_[no]); + GotoXY(x+2,y+2); WriteLet('2','Delay :',11); + TextColor(15); Write(' ',slow_[no]); + repeat + DoHelp; + WriteLn('Drcken Sie "1" oder "2" um den Faktor oder das Delay zu ndern.'); + WriteLn('"X", wenn Sie hier nichts ndern wollen.'); + WriteLn; + WriteLn('Faktor - ist die Beschleunigung, d.h. es wird nur noch jeder Xte'); + WriteLn(' Zustand auf dem Bildschirm ausgegeben, was die'); + WriteLn(' Bearbeitung und Visualisierung ungemein beschleunigt.'); + WriteLn; + WriteLn('Delay - die Wartedauer zwischen zwei Ausgaben. Bei schnellen Algo-'); + WriteLn(' rithmen sollte man ein Delay setzen, damit die Visuali-'); + WriteLn(' sierung in einer vernnftigen Geschwindigkeit abluft.'); + HelpDone; + key := ReadKey; + case key of + '1': begin + GotoXY(x+2,y+1); TextColor(11+blink); Write('[ ]'); + GotoXY(x+3,y+1); TextColor(14+blink); Write('1'); + GotoXY(x+6,y+1); TextColor(15); Write('Faktor:'); + GotoXY(x+14,y+1); TextColor(15); + DoHelp; + WriteLn('Der Faktor gibt an, wieviel Zustnde whrend der Visualisierung'); + WriteLn('bersprungen werden sollen. Es wird nur jeder Xte Zustand'); + WriteLn('angezeigt. Die Zahl kann im Bereich von 1 bis 32767 liegen,'); + WriteLn('aber man sollte sie nicht grer als etwa 100 whlen, da sonst'); + WriteLn('die Visualisierung etwas merkwrdig aussieht.'); + WriteLn; + WriteLn('Um den Wert nicht zu ndern, einfach [ENTER] drcken.'); + HelpDone; + Setup_GetVal(fact_[no]); + if (fact_[no]<1) then fact_[no]:=1; + GotoXY(x+2,y+1); WriteLet('1','Faktor:',11); + TextColor(15); + GotoXY(x+14,y+1); Write(Space(10)); + GotoXY(x+14,y+1); Write(fact_[no]); + end; + '2': begin + GotoXY(x+2,y+2); TextColor(11+blink); Write('[ ]'); + GotoXY(x+3,y+2); TextColor(14+blink); Write('2'); + GotoXY(x+6,y+2); TextColor(15); Write('Delay :'); + GotoXY(x+14,y+2); TextColor(15); + DoHelp; + WriteLn('Das Delay gibt an, wieviel Millisekunden zwischen der Anzeige'); + WriteLn('der einzelnen Zustnde "gewartet" werden sollen. Die Zahl kann'); + WriteLn('im Bereich von 0 bis 32767 liegen, sollte aber nie grer als'); + WriteLn('ca. 500 ( Sekunde) gewhlt werden, da man sonst Stunden vor'); + WriteLn('dem Rechner sitzen kann, ohne gro was zu sehen.'); + WriteLn; + WriteLn('Um den Wert nicht zu ndern, einfach [ENTER] drcken.'); + HelpDone; + Setup_GetVal(slow_[no]); + GotoXY(x+2,y+2); WriteLet('2','Delay :',11); + TextColor(15); + GotoXY(x+14,y+2); Write(Space(10)); + GotoXY(x+14,y+2); Write(slow_[no]); + end; + end; + until (key IN ['x','X']); + ClearHelp; + GotoXY(x,y); WriteLet(c,t,11); + TextColor(8); + GotoXY(x+2,y+1); Write(' Faktor:'); + GotoXY(x+2,y+2); Write(' Delay :'); + GotoXY(x+14,y+1); Write(Space(10)); + GotoXY(x+14,y+1); Write(fact_[no]); + GotoXY(x+14,y+2); Write(Space(10)); + GotoXY(x+14,y+2); Write(slow_[no]); +end; + +procedure Setup_SimpleSN; +var key: char; +begin + Setup_Algos(5,15,'E','einfachstes Sort (normal)',1); +end; + +procedure Setup_SimpleSQ; +begin + Setup_Algos(45,15,'F','einfachstes Sort (quick)',11); +end; + +procedure Setup_SelectionS; +begin + Setup_Algos(5,19,'G','Selectionsort',2); +end; + +procedure Setup_BubbleS; +begin + Setup_Algos(45,19,'H','Bubblesort',3); +end; + +procedure Setup_QuickS; +begin + Setup_Algos(5,23,'I','Quicksort',4); +end; + +procedure Setup_SaveVals; +var f: text; +begin + Assign(f,DataFile); + {$I-} + Rewrite(f); + if IOResult<>0 then begin + TextMode(co80); + WriteLn('Fehler beim Schreiben der INI-Datei ... haben Sie genug Rechte?'); + WriteLn('Ist die Datei VISUAL2.INI nicht schreibgeschtzt? Ist genug Platz'); + WriteLn('vorhanden?'); + WriteLn; + Halt; + end; + {$I+} + WriteLn(f,BGIPath); + WriteLn(f,pretime:0); + WriteLn(f,DotCol:0); + WriteLn(f,TrailCol:0); + WriteLn(f,fact_[1]:0); + WriteLn(f,slow_[1]:0); + WriteLn(f,fact_[11]:0); + WriteLn(f,slow_[11]:0); + WriteLn(f,fact_[2]:0); + WriteLn(f,slow_[2]:0); + WriteLn(f,fact_[3]:0); + WriteLn(f,slow_[3]:0); + WriteLn(f,fact_[4]:0); + WriteLn(f,slow_[4]:0); + WriteLn(f,ArrayType:0); + WriteLn(f,''); + WriteLn(f,'INI-Datei fr VISUAL2.EXE (bzw. VISUAL2.PAS)'); + WriteLn(f,''); + WriteLn(f,' Copyright (c)1999 by Markus Birth '); + WriteLn(f,''); + WriteLn(f,' 1. Zeile: BGI-Path'); + WriteLn(f,' 2. Zeile: Pre-Delay vor Grafikanzeige'); + WriteLn(f,' 3. Zeile: Punktfarbe'); + WriteLn(f,' 4. Zeile: Spurfarbe'); + WriteLn(f,' 5. Zeile: einfachstes Sort (normal): -Faktor'); + WriteLn(f,' 6. -Delay'); + WriteLn(f,' 7. Zeile: einfachstes Sort (quick): -Faktor'); + WriteLn(f,' 8. -Delay'); + WriteLn(f,' 9. Zeile: Selectionsort: -Faktor'); + WriteLn(f,'10. -Delay'); + WriteLn(f,'11. Zeile: Bubblesort: -Faktor'); + WriteLn(f,'12. -Delay'); + WriteLn(f,'13. Zeile: Quicksort: -Faktor'); + WriteLn(f,'14. -Delay'); + WriteLn(f,'15. Zeile: Arraytype (0-Random, 1-aufsteigend, 2-absteigend)'); + Close(f); + AckBeep; +end; + +procedure Setup_Abort; +begin + BGIPath := oBGIPath; + pretime := opretime; + slow_ := oslow_; + fact_ := ofact_; + DotCol := oDotCol; + TrailCol := oTrailCol; + ArrayType:= oArrayType; +end; + +procedure Setup_SavePre; +begin + oBGIPath := BGIPath; + opretime := pretime; + oslow_ := slow_; + ofact_ := fact_; + oDotCol := DotCol; + oTrailCol := TrailCol; + oArrayType:= ArrayType; +end; + +procedure Setup; +var sel: char; +begin + Setup_SavePre; + DrawBorder2(2,5,78,49,15,2); + GotoXY(1,7); + FXWriteC('Voreinstellungen ndern',15); + OutSetup; + repeat + sel := ReadKey; + if NOT Setup_KeyValid(sel) then begin + Sound(400); + Delay(100); + NoSound; + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + case sel of + 'a','A': Setup_BGIpath; + 'b','B': Setup_PreDelay; + 'c','C': Setup_DotCol; + 'd','D': Setup_TrailCol; + 'e','E': Setup_SimpleSN; + 'f','F': Setup_SimpleSQ; + 'g','G': Setup_SelectionS; + 'h','H': Setup_BubbleS; + 'i','I': Setup_QuickS; + 's','S': Setup_SaveVals; + 'x','X': Setup_Abort; + end; + until (sel IN ['o','O','x','X','s','S']); +end; + +begin + ReadIni; + repeat + sel := Menu; + abo := false; + case sel of + 1: Doit(1); + 2: Doit(11); + 3: Doit(2); + 4: Doit(3); + 5: Doit(4); + 128: Setup; + end; + until (sel=0); + Outit; +end. diff --git a/ITG/WAHLEN.PAS b/ITG/WAHLEN.PAS new file mode 100644 index 0000000..e2cfaa1 --- /dev/null +++ b/ITG/WAHLEN.PAS @@ -0,0 +1,5 @@ +uses Crt;const S:array[1..3,1..4] of word=((825,999,637,723),(436,638,345,451),(652,821,504,633));var B:array[1..3] of word; +P:array[1..4] of word;procedure A;var i,j:byte;begin for i:=1 to 3 do for j:=1 to 4 do begin P[j]:=P[j]+S[i,j]; +B[i]:=B[i]+S[i,j];end;end;procedure C;var i,j:byte;begin WriteLn('<=========*=========>');Write(' '); +WriteLn('ROT BLAU GELB GRN ====');for i:=1 to 3 do begin Write('Bezirk ',i,' ');for j:=1 to 4 do Write(S[i,j]:4,' '); +WriteLn(B[i]:4);end;Write('======== ');for i:=1 to 4 do Write(P[i]:4,' ');WriteLn;end;begin A;C;ReadKey;end. diff --git a/ITG/WASSRTMP.PAS b/ITG/WASSRTMP.PAS new file mode 100644 index 0000000..2c16b78 --- /dev/null +++ b/ITG/WASSRTMP.PAS @@ -0,0 +1,63 @@ +program Wassertemp; + +uses Crt; + +const un='C'; + +var l: real; + T1,T2,Tw: real; + +procedure CalcTemp(l,T1,T2,Tw: real); +var x: real; +begin + if ((Tw>T1) AND (Tw>T2)) then begin + TextColor(12); + WriteLn('Du Idiot! Hast Du ''ne Mikrowelle neben Deiner Badewanne?'); + WriteLn('Das Wasser kann doch nicht wrmer werden, wie die max. Temp!'); + Exit; + end; + if ((Tw3 then begin + Str(x,ot); + OutText(ot+';'); + Str(t,ot); + OutText(ot); + end; + oy := t; } + y := t; + +end; + +procedure DrawLine; +var i: integer; +begin + MoveTo(13,y(13)); + SetColor(8); + for i:=13 to 627 do begin + LineTo(i,y(i)); + end; +end; + +procedure BlowTorch(i: word;col: byte); +const fcol=7; { Farbe der Lampenfassung } + pcol=15; { Farbe des Kontakts } + gcol=8; { Farbe des Glas } +var j: integer; +begin + { Just a 3x3 rectangle } + { PutPixel(i-1,y(i)-1,col); + PutPixel(i-1,y(i),col); + PutPixel(i-1,y(i)+1,col); + PutPixel(i,y(i)-1,col); + PutPixel(i,y(i),col); + PutPixel(i,y(i)+1,col); + PutPixel(i+1,y(i)-1,col); + PutPixel(i+1,y(i),col); + PutPixel(i+1,y(i)+1,col); } + + { A nice lamp } + PutPixel(i,y(i)-2,pcol); { Kontakt } + + for j:=-1 to 1 do PutPixel(i-1,y(i)+j,fcol); { Sockel } + for j:=-1 to 1 do PutPixel(i,y(i)+j,fcol); + for j:=-1 to 1 do PutPixel(i+1,y(i)+j,fcol); + + PutPixel(i-2,y(i)+2,gcol); { Lampe } + PutPixel(i+2,y(i)+2,gcol); + PutPixel(i-2,y(i)+6,gcol); + PutPixel(i+2,y(i)+6,gcol); + for j:=3 to 5 do PutPixel(i-3,y(i)+j,gcol); + for j:=3 to 5 do PutPixel(i+3,y(i)+j,gcol); + for j:=-1 to 1 do PutPixel(i+j,y(i)+7,gcol); + + for j:=3 to 5 do PutPixel(i-2,y(i)+j,col); { Licht } + for j:=2 to 6 do PutPixel(i-1,y(i)+j,col); + for j:=2 to 6 do PutPixel(i,y(i)+j,col); + for j:=2 to 6 do PutPixel(i+1,y(i)+j,col); + for j:=3 to 5 do PutPixel(i+2,y(i)+j,col); +end; + +procedure AnimateTorches_LineBlink; +var i: integer; +begin + Randomize; + for i:=13 to 627 do begin + if i/bdis=Int(i/bdis) then begin + BlowTorch(i,0); + end; + end; + repeat + for i:=13 to 627 do begin + if i/bdis=Int(i/bdis) then begin + BlowTorch(i,Random(16)); + Delay(pdel); + end; + end; + Delay(bdel); + until keypressed; + ReadKey; +end; + +procedure AnimateTorches_RandomBlink; +var i: integer; +begin + Randomize; + for i:=13 to 627 do begin + if i/bdis=Int(i/bdis) then begin + BlowTorch(i,0); + end; + end; + repeat + i := (Random(630 DIV bdis))*bdis+20; + BlowTorch(i,Random(16)); + Delay(pdel); + until keypressed; + ReadKey; +end; + +procedure AnimateTorches_ShiftBlink; +const maxt=630 DIV bdis-1; +var i: integer; + lc: array[0..maxt] of byte; +begin + Randomize; + for i:=13 to 627 do begin + if i/bdis=Int(i/bdis) then begin + BlowTorch(i,0); + end; + end; + repeat + for i:=maxt downto 1 do lc[i]:=lc[i-1]; + lc[0] := Random(16); + for i:=0 to maxt do begin + BlowTorch(i*bdis+20,lc[i]); + end; + Delay(bdel); + until keypressed; + ReadKey; +end; + +begin + InitGraphics; + DrawStaffs; + DrawLine; + AnimateTorches_ShiftBlink; + OutitGraphics; +end. diff --git a/ITG/rekGui.pas b/ITG/rekGui.pas new file mode 100644 index 0000000..6c768eb --- /dev/null +++ b/ITG/rekGui.pas @@ -0,0 +1,333 @@ +program RekGUI; + +uses Crt, Graph, DOS, GUI, RekGraph, BGIP; + +const desktopcolor=3; + skier_len: integer=120; + skier_edge: integer=10; + skier_globangle: integer=0; + skier_fixedinit: boolean=true; + haken_len: integer=150; + haken_angle: integer=45; + haken_globangle: integer=0; + haken_fixedinit: boolean=true; + quadrat_len: integer=150; + quadrat_angle: integer=90; + quadrat_globangle: integer=0; + quadrat_fixedinit: boolean=true; + spirale_len: integer=10; + spirale_angle: integer=25; + spirale_globangle: integer=0; + spirale_fixedinit: boolean=true; + +var xmax, ymax, xmed, ymed: word; + ExitAll, ExitSetupAll: boolean; + +procedure Init; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + initp_del := 30; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + om := 0; + ExitAll := false; + ExitSetupAll := false; + SetTextStyle(DefaultFont,HorizDir,1); + SetTextJustify(LeftText,TopText); + SetFillStyle(SolidFill,desktopcolor); + Bar(0,0,xmax-1,ymax-1); + ClearStatus; +end; + +procedure InitGraphs; +begin + skier_del := 50; + haken_del := 50; + quadrat_del := 100; + spirale_del := 50; +end; + +procedure Outit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +function V2S(x: byte): string; +var tmp: string; +begin + Str(x:3,tmp); + V2S := tmp; +end; + +procedure ShowSkier; +begin + globangle := skier_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(180,370); + Skier(skier_len,skier_edge); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure ShowHaken; +begin + globangle := haken_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Haken(haken_len,haken_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure ShowQuadrat; +begin + globangle := haken_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Quadrat(quadrat_len,quadrat_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + + +procedure ShowSpirale; +begin + globangle := spirale_globangle; + SetViewPort(13,31,497,397,ClipOn); + MoveTo(240,180); + Spirale(spirale_len,spirale_angle); + SetViewPort(0,0,639,479,ClipOff); +end; + +procedure Palette; +const tx=50; + ty=31; +var i,j: integer; +begin + for j:=1 to 16 do begin + SetTextJustify(RightText,CenterText); + SetColor(0); + OutTextXY(tx,ty+(j-1)*10+5,V2S((j-1)*16)); + for i:=0 to 15 do begin + SetFillStyle(SolidFill,(j-1)*16+i); + SetColor((j-1)*15+i); + Bar(tx+i*10,ty+(j-1)*10,tx+i*10+10,ty+(j-1)*10+10); + end; + SetTextJustify(LeftText,CenterText); + SetColor(0); + OutTextXY(tx+162,ty+(j-1)*10+5,V2S((j-1)*16+15)); + end; +end; + +procedure CheckSetupStat; +begin + if (mb<>0) then ShowMouse(false); + if MouseOver(15,405,525,425) then begin + Status('Hiermit wird die Konfiguration so gespeichert'); + case mb of + 1: begin + ExitSetupAll := true; + end; + end; + end else if MouseOver(527,405,625,425) then begin + Status('Hier geht''s nach Hause!'); + case mb of + 1: begin + MakeBeveledButton(527,405,625,425,'EXIT'); + ExitSetupAll:=true; + ExitAll:=true; + Delay(buttondelay); + MakeButton(527,405,625,425,'EXIT'); + Exit; + end; + end; + end else if (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +procedure SetupData; +var sx,sy,sb: integer; +begin + MakeWindow(10,10,630,430,'Konfiguration'); + MakeButton(15,405,525,425,'Einstellungen so bernehmen'); + MakeButton(527,405,625,425,'EXIT'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckSetupStat; + StatusTime(false); + until (mb=3) OR (ExitSetupAll); + if (mb=3) then ExitAll := true; + ShowMouse(false); +end; + +procedure BuildWindows; +begin + MakeWindow(10,10,500,400,'Hauptfenster'); + MakeWindow(505,10,600,400,'Optionen'); + MakeButton(510,385,595,395,'EXIT'); + MakeButton(510,373,595,383,'CLEAR'); + MakeButton(510,34,595,54,'Skierp.'); + MakeButton(510,56,595,76,'Haken'); + MakeButton(510,78,595,98,'Quadrat'); + MakeButton(510,100,595,120,'Spirale'); + MakeButton(510,350,595,371,'SETUP'); +end; + +procedure CheckStat; +begin + if (mb<>0) then ShowMouse(false); + if MouseOver(510,385,595,395) then begin + Status('Hier geht''s nach Hause!'); + case mb of + 1: begin + MakeBeveledButton(510,385,595,395,'EXIT'); + ExitAll:=true; + Delay(buttondelay); + MakeButton(510,385,595,395,'EXIT'); + Exit; + end; + end; + end else if MouseOver(510,373,595,383) then begin + Status('Damit wird das Hauptfenster gelscht!'); + case mb of + 1: begin + MakeBeveledButton(510,373,595,383,'CLEAR'); + SetFillStyle(SolidFill,7); + Bar(13,31,497,397); + Delay(buttondelay); + MakeButton(510,373,595,383,'CLEAR'); + end; + end; + end else if MouseOver(510,350,595,371) then begin + Status('Hier kann man die Einstellungen ndern!'); + case mb of + 1: begin + MakeBeveledButton(510,350,595,371,'SETUP'); + SetFillStyle(SolidFill,desktopcolor); + Bar(10,10,500,400); + Delay(buttondelay DIV 2); + Bar(505,10,600,400); + Delay(buttondelay DIV 2); + ExitSetupAll := false; + SetupData; + if NOT ExitAll then begin + SetFillStyle(SolidFill,desktopcolor); + Bar(10,10,630,430); + BuildWindows; + end; + end; + end; + end else if MouseOver(510,34,595,54) then begin + Status('Fr unsere Wintersportler!'); + case mb of + 1: begin + MakeBeveledButton(510,34,595,54,'Skierp.'); + ShowSkier; + Delay(buttondelay); + MakeButton(510,34,595,54,'Skierp.'); + end; + end; + end else if MouseOver(510,56,595,76) then begin + Status('Und das ist fr die Angler!'); + case mb of + 1: begin + MakeBeveledButton(510,56,595,76,'Haken'); + ShowHaken; + Delay(buttondelay); + MakeButton(510,56,595,76,'Haken'); + end; + end; + end else if MouseOver(510,78,595,98) then begin + Status('Sehen Sie schon viereckig?'); + case mb of + 1: begin + MakeBeveledButton(510,78,595,98,'Quadrat'); + ShowQuadrat; + Delay(buttondelay); + MakeButton(510,78,595,98,'Quadrat'); + end; + end; + end else if MouseOver(510,100,595,120) then begin + Status('Ist was verstopft?'); + case mb of + 1: begin + MakeBeveledButton(510,100,595,120,'Spirale'); + ShowSpirale; + Delay(buttondelay); + MakeButton(510,100,595,120,'Spirale'); + end; + end; + end else if (oldstat<>'') then begin + ClearStatus; + oldstat:=''; + end; + if (mb<>0) then ShowMouse(true); +end; + +procedure StartScreen; +begin + MakeWindow(120,140,520,340,'Rekursive Grafikfunktionen'); + SetViewPort(123,161,517,337,ClipOn); + SetColor(9); + SetTextStyle(TripleXFont,HorizDir,10); + SetTextJustify(CenterText,CenterText); + OutTextXY(200,24,'GUI'); + OutTextXY(200,26,'GUI'); + OutTextXY(199,25,'GUI'); + OutTextXY(201,25,'GUI'); + SetTextStyle(SansSerifFont,HorizDir,2); + OutTextXY(200,100,'GRAPHICAL USER INTERFACE'); + SetColor(0); + SetTextStyle(SmallFont,HorizDir,5); + OutTextXY(200,165,'geschrieben von Markus Birth '); + SetTextStyle(SmallFont,VertDir,4); + SetTextJustify(CenterText,TopText); + SetColor(8); + OutTextXY(385,2,'(c)1999 Web - Writers'); + SetColor(0); + SetTextStyle(DefaultFont,HorizDir,1); + OutTextXY(200,140,'Initialisiere Farbpalette ...'); + Delay(1000); + InitPalette; + SetFillStyle(SolidFill,7); + Bar(0,130,400,150); + SetTextStyle(DefaultFont,HorizDir,1); + SetViewPort(0,0,639,479,ClipOff); + Status('Bitte drcken Sie irgendeine Taste (Maus oder Tastatur)'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + StatusTime(false); + until (keypressed) OR (mb<>0); + if keypressed then ReadKey; + ShowMouse(false); + SetFillStyle(SolidFill,desktopcolor); + Bar(120,140,520,340); +end; + +begin + Init; + InitGraphs; + StartScreen; + BuildWindows; + MouseReset; + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + CheckStat; + StatusTime(false); + until (mb=3) OR (ExitAll); + ShowMouse(false); + FadeOut; + Outit; +end. diff --git a/KEY1.DAT b/KEY1.DAT new file mode 100644 index 0000000..77980d1 --- /dev/null +++ b/KEY1.DAT @@ -0,0 +1,4286 @@ + +Anzahl Tastatureingaben : 10000 +KEY: 21 00 08 02 +KEY: 1C 0D 00 00 +KEY: 14 54 01 00 +KEY: 39 20 01 00 +KEY: 18 4F 01 00 +KEY: 39 20 01 00 +KEY: 19 50 01 00 +KEY: 39 20 01 00 +KEY: 39 20 01 00 +KEY: 39 20 01 00 +KEY: 39 20 01 00 +KEY: 1F 53 01 00 +KEY: 39 20 01 00 +KEY: 12 45 01 00 +KEY: 39 20 01 00 +KEY: 2E 43 01 00 +KEY: 39 20 01 00 +KEY: 13 52 01 00 +KEY: 39 20 01 00 +KEY: 12 45 01 00 +KEY: 39 20 01 00 +KEY: 14 54 01 00 +KEY: 47 E0 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 21 46 01 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1A 9A 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 17 69 00 00 +KEY: 16 75 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 30 42 01 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 0E 08 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 18 4F 01 00 +KEY: 19 50 01 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 12 45 01 00 +KEY: 2E 43 01 00 +KEY: 13 52 01 00 +KEY: 12 45 01 00 +KEY: 14 54 01 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 34 3A 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 02 31 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 31 4E 01 00 +KEY: 18 6F 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 15 7A 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 1E 61 00 00 +KEY: 19 70 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 03 32 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 0E 08 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 2E 43 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 21 66 00 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 34 2E 00 00 +KEY: 14 74 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 0C E1 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 0C E1 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 4B E0 00 00 +KEY: 1F 73 00 00 +KEY: 53 E0 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 27 94 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 0E 08 00 00 +KEY: 1E 61 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 19 70 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 28 84 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 04 33 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 13 72 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 74 E0 04 00 +KEY: 4B E0 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 4F E0 00 00 +KEY: 1F 73 00 00 +KEY: 1E 61 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1A 9A 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 19 50 01 00 +KEY: 21 66 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 28 84 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 39 20 00 00 +KEY: 2F 56 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 18 6F 00 00 +KEY: 0C E1 00 00 +KEY: 1C 0D 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 02 31 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 04 33 00 00 +KEY: 0A 29 01 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 23 48 01 00 +KEY: 27 94 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 2F 56 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 28 84 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 34 3A 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 26 4C 01 00 +KEY: 12 45 01 00 +KEY: 30 42 01 00 +KEY: 12 45 01 00 +KEY: 31 4E 01 00 +KEY: 1F 53 01 00 +KEY: 26 4C 01 00 +KEY: 1E 41 01 00 +KEY: 31 4E 01 00 +KEY: 22 47 01 00 +KEY: 12 45 01 00 +KEY: 39 20 00 00 +KEY: 23 48 01 00 +KEY: 1E 61 00 00 +KEY: 21 66 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 2C 79 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 28 84 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 13 52 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 13 72 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 25 6B 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 27 94 00 00 +KEY: 26 6C 00 00 +KEY: 20 64 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 21 46 01 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 17 49 01 00 +KEY: 23 68 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1A 9A 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 28 84 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 39 20 00 00 +KEY: 53 E0 00 00 +KEY: 74 E0 04 00 +KEY: 4B E0 00 00 +KEY: 4B E0 00 00 +KEY: 13 72 00 00 +KEY: 4F E0 00 00 +KEY: 1C 0D 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 20 64 00 00 +KEY: 20 64 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 0E 08 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 0E 08 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 20 64 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1C 0D 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 06 35 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 48 E0 00 00 +KEY: 4F E0 00 00 +KEY: 73 E0 04 00 +KEY: 4B E0 00 00 +KEY: 33 2C 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 50 E0 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 1C 0D 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 47 01 00 +KEY: 0E 08 00 00 +KEY: 03 22 01 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 34 2E 00 00 +KEY: 14 74 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 03 22 01 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 23 68 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 39 20 00 00 +KEY: 26 6C 00 00 +KEY: 27 94 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 73 E0 04 00 +KEY: 4B E0 00 00 +KEY: 4B E0 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 4F E0 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 11 57 01 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 02 31 00 00 +KEY: 0B 30 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 12 65 00 00 +KEY: 25 6B 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 17 49 01 00 +KEY: 31 6E 00 00 +KEY: 25 6B 00 00 +KEY: 21 66 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 21 66 00 00 +KEY: 14 74 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 22 67 00 00 +KEY: 0E 08 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 0B 30 00 00 +KEY: 0A 39 00 00 +KEY: 53 E0 00 00 +KEY: 53 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 4D E0 00 00 +KEY: 09 38 00 00 +KEY: 53 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 4D E0 00 00 +KEY: 52 E0 80 80 +KEY: 08 37 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 07 36 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 06 35 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 05 34 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 04 33 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 03 32 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 4D E0 80 00 +KEY: 02 31 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 50 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 48 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 53 E0 80 00 +KEY: 1C 0D 80 00 +KEY: 52 E0 00 80 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 50 E0 01 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 48 E0 01 00 +KEY: 22 47 01 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 16 75 00 00 +KEY: 30 62 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 26 4C 01 00 +KEY: 14 74 00 00 +KEY: 34 2E 00 00 +KEY: 39 20 00 00 +KEY: 2E 43 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 10 51 01 00 +KEY: 16 75 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 25 6B 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 2E 43 01 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 11 77 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 17 49 01 00 +KEY: 31 6E 00 00 +KEY: 2F 76 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 73 E0 04 00 +KEY: 03 22 01 00 +KEY: 4F E0 00 00 +KEY: 03 22 01 00 +KEY: 34 3A 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 11 57 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 1E 61 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 1F 53 01 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 15 7A 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 0E 08 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 31 4E 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 73 E0 04 00 +KEY: 4B E0 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 26 6C 00 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 15 7A 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 1C 0D 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 30 62 00 00 +KEY: 21 66 00 00 +KEY: 26 6C 00 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 26 6C 00 00 +KEY: 18 6F 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 1E 41 01 00 +KEY: 30 62 00 00 +KEY: 21 66 00 00 +KEY: 26 6C 00 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 26 6C 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 25 6B 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 2F 76 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 28 84 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 30 62 00 00 +KEY: 21 66 00 00 +KEY: 26 6C 00 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 39 20 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 2E 43 01 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 11 77 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 27 94 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 35 2D 00 00 +KEY: 1F 53 01 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 15 5A 01 00 +KEY: 16 75 00 00 +KEY: 22 67 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1F 73 00 00 +KEY: 25 6B 00 00 +KEY: 0E 08 00 00 +KEY: 2E 63 00 00 +KEY: 18 6F 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 11 77 00 00 +KEY: 28 84 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 27 94 00 00 +KEY: 22 67 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 32 4D 01 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 26 6C 00 00 +KEY: 11 77 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1C 0D 00 00 +KEY: 1F 53 01 00 +KEY: 14 74 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 21 46 01 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 21 66 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 2E 43 01 00 +KEY: 18 6F 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 25 6B 00 00 +KEY: 27 94 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 28 84 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 2F 56 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 30 62 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 19 70 00 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 1C 0D 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 28 84 00 00 +KEY: 23 68 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 35 2D 00 00 +KEY: 39 20 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 11 57 01 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 28 84 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 32 6D 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 1A 81 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 18 6F 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 21 00 08 02 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 1C 0D 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 34 2E 00 00 +KEY: 14 74 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 11 57 01 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 14 74 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 24 6A 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 15 7A 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 03 22 01 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 32 6D 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 03 22 01 00 +KEY: 39 20 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 28 84 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 15 7A 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 16 75 00 00 +KEY: 0C E1 00 00 +KEY: 1C 0D 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 4B 01 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 27 94 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1C 0D 00 00 +KEY: 22 47 01 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 23 68 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 27 94 00 00 +KEY: 0E 08 00 00 +KEY: 31 6E 00 00 +KEY: 27 94 00 00 +KEY: 14 74 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 15 7A 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 1C 0D 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 26 6C 00 00 +KEY: 28 84 00 00 +KEY: 16 75 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 39 20 00 00 +KEY: 17 49 01 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1C 0D 00 00 +KEY: 31 6E 00 00 +KEY: 18 6F 00 00 +KEY: 1E 61 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 32 6D 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 20 64 00 00 +KEY: 13 72 00 00 +KEY: 1A 81 00 00 +KEY: 2E 63 00 00 +KEY: 25 6B 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 0C E1 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 1E 41 01 00 +KEY: 31 6E 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1C 0D 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 30 62 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 2F 76 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 28 84 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 26 6C 00 00 +KEY: 2E 63 00 00 +KEY: 17 69 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 27 94 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 16 75 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 14 74 00 00 +KEY: 1F 73 00 00 +KEY: 19 70 00 00 +KEY: 13 72 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 14 74 00 00 +KEY: 23 68 00 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 23 68 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 18 6F 00 00 +KEY: 21 66 00 00 +KEY: 21 66 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 22 67 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 02 21 01 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 73 E0 04 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 1E 41 01 00 +KEY: 16 75 00 00 +KEY: 0C E1 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 4F E0 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 30 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 4F E0 00 00 +KEY: 0E 08 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 0E 08 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 34 3A 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 34 2E 00 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 0A 39 00 00 +KEY: 07 36 00 00 +KEY: 09 38 00 00 +KEY: 0B 30 00 00 +KEY: 0B 30 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 73 E0 04 00 +KEY: 20 44 01 00 +KEY: 18 4F 01 00 +KEY: 1F 53 01 00 +KEY: 35 2D 00 00 +KEY: 4F E0 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 16 55 01 00 +KEY: 32 6D 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 2E 63 00 00 +KEY: 18 6F 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 19 70 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1C 0D 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 2E 63 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 34 2E 00 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 02 31 00 00 +KEY: 08 37 00 00 +KEY: 0A 39 00 00 +KEY: 04 33 00 00 +KEY: 07 36 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 18 4F 01 00 +KEY: 1F 53 01 00 +KEY: 35 2D 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 28 84 00 00 +KEY: 23 68 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 0E 08 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 0E 08 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 32 6D 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 19 70 00 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 14 74 00 00 +KEY: 18 6F 00 00 +KEY: 25 6B 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 35 2D 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 26 6C 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 39 20 00 00 +KEY: 31 6E 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 2C 79 00 00 +KEY: 02 31 00 00 +KEY: 34 2E 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 39 20 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 26 6C 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 22 47 01 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 26 6C 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 15 7A 00 00 +KEY: 17 69 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 32 6D 00 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 21 66 00 00 +KEY: 28 84 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 1A 81 00 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 23 68 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 2C 79 00 00 +KEY: 34 2E 00 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 03 32 00 00 +KEY: 03 32 00 00 +KEY: 03 32 00 00 +KEY: 03 32 00 00 +KEY: 07 36 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 18 6F 00 00 +KEY: 0E 08 00 00 +KEY: 18 4F 01 00 +KEY: 1F 53 01 00 +KEY: 35 2D 00 00 +KEY: 19 50 01 00 +KEY: 13 72 00 00 +KEY: 18 6F 00 00 +KEY: 22 67 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 33 2C 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 26 6C 00 00 +KEY: 2E 63 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 32 6D 00 00 +KEY: 19 70 00 00 +KEY: 21 66 00 00 +KEY: 1E 61 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 1E 61 00 00 +KEY: 1F 73 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 0E 08 00 00 +KEY: 25 6B 00 00 +KEY: 12 65 00 00 +KEY: 2C 79 00 00 +KEY: 02 31 00 00 +KEY: 34 2E 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 1E 61 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 20 64 00 00 +KEY: 39 20 00 00 +KEY: 11 77 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 20 64 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 20 64 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 14 54 01 00 +KEY: 12 65 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 20 64 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 16 75 00 00 +KEY: 1F 73 00 00 +KEY: 1E 61 00 00 +KEY: 32 6D 00 00 +KEY: 32 6D 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 14 74 00 00 +KEY: 15 7A 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 2E 63 00 00 +KEY: 18 6F 00 00 +KEY: 13 72 00 00 +KEY: 20 64 00 00 +KEY: 34 2E 00 00 +KEY: 30 62 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 04 33 00 00 +KEY: 05 34 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 17 49 01 00 +KEY: 12 45 01 00 +KEY: 1F 53 01 00 +KEY: 12 45 01 00 +KEY: 1F 53 01 00 +KEY: 39 20 01 00 +KEY: 19 50 01 00 +KEY: 13 52 01 00 +KEY: 18 4F 01 00 +KEY: 22 47 01 00 +KEY: 13 52 01 00 +KEY: 1E 41 01 00 +KEY: 32 4D 01 00 +KEY: 32 4D 01 00 +KEY: 39 20 00 00 +KEY: 1F 53 01 00 +KEY: 14 54 01 00 +KEY: 1E 41 01 00 +KEY: 13 52 01 00 +KEY: 14 54 01 00 +KEY: 12 45 01 00 +KEY: 31 4E 01 00 +KEY: 39 20 01 00 +KEY: 15 5A 01 00 +KEY: 16 55 01 00 +KEY: 13 52 01 00 +KEY: 39 20 01 00 +KEY: 1E 41 01 00 +KEY: 16 55 01 00 +KEY: 21 46 01 00 +KEY: 15 5A 01 00 +KEY: 12 45 01 00 +KEY: 17 49 01 00 +KEY: 2E 43 01 00 +KEY: 23 48 01 00 +KEY: 31 4E 01 00 +KEY: 16 55 01 00 +KEY: 31 4E 01 00 +KEY: 22 47 01 00 +KEY: 1C 0D 00 00 +KEY: 19 70 00 00 +KEY: 26 6C 00 00 +KEY: 1E 61 00 00 +KEY: 2C 79 00 00 +KEY: 34 2E 00 00 +KEY: 30 62 00 00 +KEY: 1E 61 00 00 +KEY: 14 74 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 05 34 00 00 +KEY: 0B 30 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 2C 79 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 1F 73 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 39 20 00 00 +KEY: 20 44 01 00 +KEY: 17 49 01 00 +KEY: 12 45 01 00 +KEY: 1F 53 01 00 +KEY: 12 45 01 00 +KEY: 1F 53 01 00 +KEY: 39 20 01 00 +KEY: 19 50 01 00 +KEY: 13 52 01 00 +KEY: 18 4F 01 00 +KEY: 22 47 01 00 +KEY: 13 52 01 00 +KEY: 1E 41 01 00 +KEY: 32 4D 01 00 +KEY: 32 4D 01 00 +KEY: 39 20 01 00 +KEY: 1F 53 01 00 +KEY: 14 54 01 00 +KEY: 1E 41 01 00 +KEY: 13 52 01 00 +KEY: 14 54 01 00 +KEY: 12 45 01 00 +KEY: 31 4E 01 00 +KEY: 39 20 01 00 +KEY: 15 5A 01 00 +KEY: 15 5A 01 00 +KEY: 16 55 01 00 +KEY: 13 52 01 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 0E 08 00 00 +KEY: 16 55 01 00 +KEY: 13 52 01 00 +KEY: 39 20 01 00 +KEY: 11 57 01 00 +KEY: 17 49 01 00 +KEY: 12 45 01 00 +KEY: 20 44 01 00 +KEY: 12 45 01 00 +KEY: 13 52 01 00 +KEY: 22 47 01 00 +KEY: 1E 41 01 00 +KEY: 30 42 01 00 +KEY: 12 45 01 00 +KEY: 1C 0D 00 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 0B 3D 01 00 +KEY: 1C 0D 00 00 +KEY: 11 57 01 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 30 42 01 00 +KEY: 12 65 00 00 +KEY: 20 64 00 00 +KEY: 17 69 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 1F 73 00 00 +KEY: 23 68 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 1F 73 00 00 +KEY: 12 65 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 21 66 00 00 +KEY: 18 6F 00 00 +KEY: 26 6C 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 31 6E 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 39 20 00 00 +KEY: 15 7A 00 00 +KEY: 11 77 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 14 74 00 00 +KEY: 12 65 00 00 +KEY: 31 6E 00 00 +KEY: 39 20 00 00 +KEY: 1A 9A 01 00 +KEY: 30 62 00 00 +KEY: 12 65 00 00 +KEY: 13 72 00 00 +KEY: 14 74 00 00 +KEY: 13 72 00 00 +KEY: 1E 61 00 00 +KEY: 22 67 00 00 +KEY: 16 75 00 00 +KEY: 31 6E 00 00 +KEY: 22 67 00 00 +KEY: 34 2E 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 39 20 00 00 +KEY: 12 45 01 00 +KEY: 31 4E 01 00 +KEY: 20 44 01 00 +KEY: 12 45 01 00 +KEY: 39 20 01 00 +KEY: 20 44 01 00 +KEY: 12 45 01 00 +KEY: 13 52 01 00 +KEY: 39 20 01 00 +KEY: 1A 9A 01 00 +KEY: 30 42 01 00 +KEY: 12 45 01 00 +KEY: 13 52 01 00 +KEY: 14 54 01 00 +KEY: 13 52 01 00 +KEY: 1E 41 01 00 +KEY: 22 47 01 00 +KEY: 16 55 01 00 +KEY: 31 4E 01 00 +KEY: 22 47 01 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 1C 0D 00 00 +KEY: 21 00 08 02 +KEY: 1C 0D 00 00 +KEY: 22 67 00 00 +KEY: 12 65 00 00 +KEY: 23 68 00 00 +KEY: 12 65 00 00 +KEY: 17 69 00 00 +KEY: 32 6D 00 00 +KEY: 34 2E 00 00 +KEY: 14 74 00 00 +KEY: 2D 78 00 00 +KEY: 14 74 00 00 +KEY: 1C 0D 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 4D E0 00 00 +KEY: 4D E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 48 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 4F E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 21 00 08 02 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 50 E0 00 00 +KEY: 1C 0D 00 00 diff --git a/LOGO.PAS b/LOGO.PAS new file mode 100644 index 0000000..a19a1b0 --- /dev/null +++ b/LOGO.PAS @@ -0,0 +1,74 @@ +unit Logo; + +interface + procedure WriteLogo; +implementation +uses crt; + + + procedure WriteLogo; + begin; + TextColor(1); + WriteLn(' '); + Write(' /'); + TextColor(9); + Write(''); + TextColor(1); + WriteLn('\'); + Write(' '); + TextColor(9); + Write('۲'); + TextColor(1); + Write(''); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' '); + TextColor(9); + Write(''); + TextColor(1); + Write('۳'); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' Ŀ'); + TextColor(9); + Write(''); + TextColor(1); + Write('۳'); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' '); + TextColor(4); + Write(''); + TextColor(1); + Write(''); + TextColor(9); + Write(''); + TextColor(1); + Write('۳'); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' ۲'); + TextColor(15); + WriteLn(' '); + TextColor(1); + Write(' '); + TextColor(0); + TextBackground(7); + Write(' I N D U S T R I E S '); + TextBackground(0); + TextColor(1); + WriteLn; + WriteLn(' '); + Write(' '); + TextColor(0); + WriteLn(' (C)1995-1996 by RoboCop INDUSTRIES'); + WriteLn('If you cannot decrypt ^THAT^ Symbol, install the ANSI.SYS Driver!'); + end; + +begin + WriteLn(' Loading Unit: Logo - geschrieben von RoboCop IND.'); +end. \ No newline at end of file diff --git a/METEX.PAS b/METEX.PAS new file mode 100644 index 0000000..fad003c --- /dev/null +++ b/METEX.PAS @@ -0,0 +1,60 @@ +program Metex; + +uses Crt; + +var P: string; + Port: text; + TempVar: string[14]; + +procedure SetDeviceRaw(var T: Text); assembler; { DOS-Intr 21h - Fkt. 3 holen 4 senden } +asm + LES DI,T + MOV BX,WORD PTR ES:[DI] + MOV AX,4400H + INT 21H + TEST DX,0080H + JZ @@1 + OR DL,20H + MOV DH,DH + MOV AX,4401H + INT 21H +@@1: +end; + +procedure SendData(var T: char); assembler; +asm + mov ax,4 + mov dx,T + int 21 +end; + +function GetData: char; assembler; +asm + mov ax,3 + int 21 + mov GetData,ax +end; + +begin + ClrScr; + WriteLn('Setting Var ...'); + P := 'COM2'; + WriteLn('Assigning ...'); + Assign(Port,P); + WriteLn('ReWrite'); + Rewrite(Port); + WriteLn('SetDeviceRaw(Port)'); + SetDeviceRaw(Port); + WriteLn('Trying to write something ...'); + Write(Port,'D'); + WriteLn('Close'); + Close(Port); + WriteLn('Reset'); + Reset(Port); + WriteLn('Trying to read ...'); + Read(Port,TempVar); + WriteLn('Closing...'); + Close(Port); + WriteLn('Output...'); + WriteLn(TempVar); +end. \ No newline at end of file diff --git a/MORSE.DAT b/MORSE.DAT new file mode 100644 index 0000000..aa99bf7 --- /dev/null +++ b/MORSE.DAT @@ -0,0 +1,113 @@ +Morse Code v1.0 +RoboCop of nOOb Data File +0309278444 +54 +A +.- +B +-... +C +-.-. +D +-.. +E +. +F +..-. +G +--. +H +.... +I +.. +J +.--- +K +-.- +L +.-.. +M +-- +N +-. +O +--- +P +.--. +Q +--.- +R +.-. +S +... +T +- +U +..- +V +...- +W +.-- +X +-..- +Y +-.-- +Z +--.. + +.-.- + +---. + +..-- + +..-.. +ch +---- +1 +.---- +2 +..--- +3 +...-- +4 +....- +5 +..... +6 +-.... +7 +--... +8 +---.. +9 +----. +0 +----- +- +-....- +. +.-.-.- +? +..--.. +/ +-..-. +: +---.. += +-...- ++ +.-.-. +* +-..- +RDY! +-.- +*WAIT* +.-... +STOP! +...-.- +BEGIN +-.-.- +ERR! +........ + \ No newline at end of file diff --git a/MORSE.PAS b/MORSE.PAS new file mode 100644 index 0000000..af5a8b3 --- /dev/null +++ b/MORSE.PAS @@ -0,0 +1,104 @@ +program Morse; { invented and programmed by Markus Birth } +uses Crt, Logo; { those units are within our game } + +type MorseData=record { I'm trying to make it easier } + Symbol:String; + Code:String; + end; + +var Char2Morse: string; { Where do all the Datas live? } + MorseCode: string; + f: text; + Mors:array[0..100] of MorseData; + i, j: integer; + SingleC: string; + Codes: integer; + + +const SDelay = 50; { How fast R U ? } + LDelay = 200; + MTone = 1200; + Pause = 50; + CDelay = 200; + WDelay = 3*CDelay; + +procedure ReadData; { What the hell is a 'Morsecode'?? } + begin + Assign(f, 'morse.dat'); + Reset(f); + for i:=1 to 3 do ReadLn(f); + ReadLn(f, Codes); + Codes := Codes-1; + for i:=0 to Codes do begin + ReadLn(f, Mors[i].Symbol); + ReadLn(f, Mors[i].Code); + if Eof(f) then break; + end; + close(f); + end; + +function MorseSeek(Buch: string): string; + begin + for i:=0 to Codes do + if Mors[i].Symbol=Buch then MorseSeek := Mors[i].Code; + if Buch='' then MorseSeek := '' + end; + +procedure MorseIt(MC: string); + var MTemp: string; + begin + if MC='' then exit; + for i:=1 to length(MC) do begin + MTemp := Copy(MC, i, 1); + if MTemp = '.' then begin + Sound(MTone); + Delay(SDelay); + NoSound; + end; + if MTemp = '-' then begin + Sound(MTone); + Delay(LDelay); + NoSound; + end; + Write(MTemp); + Delay(Pause); + end; + Delay(CDelay); + WriteLn; + end; + +procedure ConvUpCase; + begin + for i:=1 to Length(Char2Morse) do + Char2Morse[i] := UpCase(Char2Morse[i]); + end; + +begin { Come get some! Let's rock. } + ClrScr; + WriteLogo; + TextColor(15); + WriteLn('wrote another nice little program'); + TextColor(14); + WriteLn('-= Morse =-'); + ReadData; + WriteLn; + TextColor(7); + WriteLn('Press any key to continue ...'); + ReadKey; + ClrScr; + TextColor(15); + WriteLn('Enter any text! To Exit just press return.'); + ReadLn(Char2Morse); + ConvUpCase; + for j:=1 to Length(Char2Morse) do begin + SingleC := Copy(Char2Morse, j, 1); + MorseCode := MorseSeek(SingleC); + if SingleC = ' ' then begin + Delay(WDelay); + WriteLn; + end + else MorseIt(MorseCode); + end; + WriteLn; + WriteLn('Exiting...'); +end. \ No newline at end of file diff --git a/MUSIK.PAS b/MUSIK.PAS new file mode 100644 index 0000000..432371e --- /dev/null +++ b/MUSIK.PAS @@ -0,0 +1,43 @@ +program Musik; + +uses Crt,BasicStrings; + +var c: char; + o: longint; + t: integer; + x,y: integer; + m: integer; + +label Anfang,Ende; + +begin +ClrScr; +m:=0; +Anfang: + c:=ReadKey; + o:=Ord(c); + t:=o*m; + Sound(t); + Delay(50); + NoSound; + Write(c); + x:=WhereX; + y:=WhereY; + if ((o=43) AND (m<99)) then Inc(m); + if ((o=45) AND (m>0)) then Dec(m); + TextColor(14); + TextBackground(1); + GotoXY(78,1); + Write(o:3); + GotoXY(79,2); + Write(m:2); + GotoXY(76,3); + Write(t:5); + TextBackground(0); + TextColor(15); + GotoXY(x,y); + if o=27 then goto Ende; + if o=13 then WriteLn; + goto Anfang; +Ende: +end. \ No newline at end of file diff --git a/NOKIA_G/5SMILIES.NGG b/NOKIA_G/5SMILIES.NGG new file mode 100644 index 0000000..98a6914 Binary files /dev/null and b/NOKIA_G/5SMILIES.NGG differ diff --git a/NOKIA_G/ADULTS.NGG b/NOKIA_G/ADULTS.NGG new file mode 100644 index 0000000..723d8ce Binary files /dev/null and b/NOKIA_G/ADULTS.NGG differ diff --git a/NOKIA_G/BLABLA.NGG b/NOKIA_G/BLABLA.NGG new file mode 100644 index 0000000..528bcfd Binary files /dev/null and b/NOKIA_G/BLABLA.NGG differ diff --git a/NOKIA_G/D2.NOL b/NOKIA_G/D2.NOL new file mode 100644 index 0000000..6d4190b Binary files /dev/null and b/NOKIA_G/D2.NOL differ diff --git a/NOKIA_G/FRIEND.NGG b/NOKIA_G/FRIEND.NGG new file mode 100644 index 0000000..403c3c7 Binary files /dev/null and b/NOKIA_G/FRIEND.NGG differ diff --git a/NOKIA_G/GRAPHEDT.PAS b/NOKIA_G/GRAPHEDT.PAS new file mode 100644 index 0000000..a045666 --- /dev/null +++ b/NOKIA_G/GRAPHEDT.PAS @@ -0,0 +1,973 @@ +{$M $F000,0,65536} + +program GraphEdit; + +uses Crt, Dos, Graph, GUI, BGIP; + +const desktopcolor=3; + blocksize=2048; + zd: byte=8; + xd=10; + yd=25; + bigact=0; biginact=15; bigline=8; + smaact=0; smainact=10; smaline=15; + savefmt: string[3]='NGG'; + +var xmax, ymax, xmed, ymed: word; + graphic: array[1..72,1..14] of boolean; + buttondown: boolean; + somethinginmem: boolean; + odfs,dfs: string; + df: file; + + +function V2S(x: word): string; +var tmp: string; +begin + Str(x,tmp); + V2S := tmp; +end; + +function LowCase(txt: string): string; +var tmp: string; + i: word; +begin + tmp := txt; + for i:=1 to Length(txt) do begin + if (txt[i] IN [#65..#90]) then tmp[i]:=Chr(Ord(txt[i])+32); + end; + LowCase := tmp; +end; + +procedure Init; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + initp_del := 30; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; + somethinginmem := false; + buttondown := false; + SetTextStyle(DefaultFont,HorizDir,1); + SetTextJustify(LeftText,TopText); + SetFillStyle(SolidFill,desktopcolor); + Bar(0,0,xmax-1,ymax-1); + ClearStatus; +end; + +procedure Outit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Last file: ',dfs); + WriteLn; + WriteLn('Program terminated.'); +end; + +procedure StartScreen; +begin + MakeWindow(120,140,520,340,'NOKIA Graphic Editor'); + SetViewPort(123,161,517,337,ClipOn); + SetColor(9); + SetTextStyle(TripleXFont,HorizDir,10); + SetTextJustify(CenterText,CenterText); + OutTextXY(200,24,'GUI'); + OutTextXY(200,26,'GUI'); + OutTextXY(199,25,'GUI'); + OutTextXY(201,25,'GUI'); + SetTextStyle(SansSerifFont,HorizDir,2); + OutTextXY(200,100,'GRAPHICAL USER INTERFACE'); + SetColor(0); + SetTextStyle(SmallFont,HorizDir,5); + OutTextXY(200,165,'written by Markus Birth '); + SetTextStyle(SmallFont,VertDir,4); + SetTextJustify(CenterText,TopText); + SetColor(8); + OutTextXY(385,2,'(c)1999 Web - Writers'); + SetColor(0); + SetTextStyle(DefaultFont,HorizDir,1); + OutTextXY(200,140,'Initializing color palette ...'); + Delay(1000); + InitPalette; + SetFillStyle(SolidFill,7); + Bar(0,130,400,150); + SetTextStyle(DefaultFont,HorizDir,1); + SetViewPort(0,0,639,479,ClipOff); + Status('Please press any key (mouse or keyboard)'); + ShowMouse(true); + repeat + MouseStat(mx,my,mb); + StatusTime(false); + until (keypressed) OR (mb<>0); + if keypressed then ReadKey; + ShowMouse(false); + SetFillStyle(SolidFill,desktopcolor); + Bar(120,140,520,340); + ClearStatus; + SetTextStyle(SmallFont,HorizDir,4); + SetColor(15); +end; + +procedure NoLoad; +begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(462,430,535,445); + ShowMouse(true); +end; + +procedure CantLoad; +begin + ShowMouse(false); + SetColor(0); + Rectangle(462,430,535,445); + SetColor(12); + Line(463,431,534,444); + Line(463,444,534,430); + ShowMouse(true); +end; + +procedure TryPreview(what: string); +var pf: file; + offs: word; + tmp: array[0..blocksize] of char; + ec: word; + i,j: byte; +begin + SetFillStyle(SolidFill,7); + Bar(462,430,535,445); + Assign(pf,what); + {$I-} + Reset(pf,1); + if IOResult<>0 then begin + CantLoad; + Exit; + end; + {$I+} + BlockRead(pf,tmp,blocksize,ec); + Close(pf); + if (ec=0) then begin + CantLoad; + Exit; + end; + offs:=0; + repeat + Inc(offs); + until ((tmp[offs-1]=#00) AND (tmp[offs]=#72) AND (tmp[offs+1]=#00) AND (tmp[offs+2]=#14)) OR (offs=ec-2); + if (offs=ec-2) then begin + CantLoad; + Exit; + end; + Inc(offs,9); + ShowMouse(false); + SetColor(0); + SetFillStyle(SolidFill,10); + Bar(462,430,535,445); + Rectangle(462,430,535,445); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (tmp[(j-1)*72+i+offs]='1') then begin + PutPixel(462+i,430+j,0); + { end else begin + PutPixel(462+i,430+j,7); } + end; + end; + end; + ShowMouse(true); +end; + +procedure SelectFile; +const entr=43; +var df: text; + fils: array[1..215] of string[12]; + maxf: byte; + tmp: string; + i,j: byte; + xp,yp: word; + ofi: byte; + wassomewhere,oversomewhere: boolean; +begin + Status('Reading directory structure....'); + SwapVectors; + Exec(GetEnv('COMSPEC'),'/C DIR /A>'+GetEnv('TEMP')+'dirlist.$$$'); + SwapVectors; + Assign(df,GetEnv('TEMP')+'dirlist.$$$'); + {$I-} + Reset(df); + if IOResult<>0 then begin + TextMode(co80); + WriteLn('ERROR while trying to read directory.'); + Halt; + end; + {$I+} + i:=1; + repeat + ReadLn(df,tmp); + if (tmp[1] IN [#65..#95]) OR (tmp[1] IN [#48..#58]) OR (tmp[1]='-') then begin + j:=1; + repeat + Inc(j); + until (tmp[j]=' '); + if (Copy(tmp,14,5)<>'') then begin + fils[i]:=Copy(tmp,1,j-1)+'.'+Copy(tmp,10,3); + fils[i]:=LowCase(fils[i]); + Inc(i); + end else begin + (* fils[i]:=Copy(tmp,1,j-1); + if (Copy(tmp,10,3)<>' ') then fils[i]:=fils[i]+'.'+Copy(tmp,10,3); + Inc(i); *) + end; + end; + if (i>215) then Exit; + until Eof(df); + Close(df); + Erase(df); + maxf := i-1; + Status('Reading directory structure....done.'); + ShowMouse(false); + MakeWindow(100,5,540,450,'Open file'); + MakeButton(105,420,170,445,'New'); + MakeButton(175,420,240,445,'Quit'); + if (somethinginmem) then MakeButton(245,420,310,445,'Cancel'); + SetTextStyle(SmallFont,HorizDir,4); + SetTextJustify(LeftText,TopText); + SetColor(0); + OutTextXY(110,25,'..'); + for i:=1 to maxf do begin + j:=i DIV entr; + xp:=110+j*85; + yp:=25+(i-j*entr)*9; + OutTextXY(xp,yp,fils[i]); + end; + ofi := 0; + repeat + ShowMouse(true); + MouseStat(mx,my,mb); + StatusTime(false); + wassomewhere:=false; + oversomewhere:=false; + if MouseOver(110,25,185,35) then begin { Parent directory } + { oversomewhere:=true; } + end; + for i:=1 to maxf do begin + j:=i DIV entr; + xp:=110+j*85; + yp:=25+(i-j*entr)*9; + if MouseOver(xp,yp+2,xp+75,yp+10) then begin + oversomewhere:=true; + if (i<>ofi) then begin + SetTextJustify(LeftText,TopText); + ShowMouse(false); + SetColor(9); + OutTextXY(xp,yp,fils[i]); + TryPreview(fils[i]); + dfs := fils[i]; + SetColor(0); + if ofi<>0 then OutTextXY(110+(ofi DIV entr)*85,25+(ofi-(ofi DIV entr)*entr)*9,fils[ofi]); + ShowMouse(true); + ofi := i; + end; + wassomewhere:=true; + end; + end; + if (NOT wassomewhere) AND (ofi<>0) then begin + ShowMouse(false); + SetColor(0); + OutTextXY(110+(ofi DIV entr)*85,25+(ofi-(ofi DIV entr)*entr)*9,fils[ofi]); + ShowMouse(true); + NoLoad; + ofi := 0; + end; + if MouseOver(105,420,170,445) then begin + oversomewhere:=true; + Status('Click to start a new graphic'); + if (mb=1) then begin + MakeBeveledButton(105,420,170,445,'New'); + repeat MouseStat(mx,my,mb); until (mb=0); + dfs:='untitled'; + exit; + end; + end; + if MouseOver(175,420,240,445) then begin + oversomewhere:=true; + Status('Click to terminate this program'); + if (mb=1) then begin + MakeBeveledButton(175,420,240,445,'Quit'); + repeat MouseStat(mx,my,mb); until (mb=0); + Outit; + Halt; + end; + end; + if (somethinginmem) AND (MouseOver(245,420,310,445)) then begin + oversomewhere:=true; + Status('Click to go back without changing something'); + if (mb=1) then begin + MakeButton(245,420,310,445,'Cancel'); + repeat MouseStat(mx,my,mb); until (mb=0); + dfs:='noload'; + exit; + end; + end; + if (NOT oversomewhere) AND (oldstat<>'') then ClearStatus; + until ((mb<>0) AND (oversomewhere)) or keypressed; + if keypressed then begin + ReadKey; + Halt; + end; + SetFillStyle(SolidFill,desktopcolor); + ShowMouse(false); + Bar(100,5,540,450); + ShowMouse(true); +end; + +procedure LoadFile; +var sts: string; + offs: word; + tmp: array[0..blocksize] of char; + ec: word; + i,j: byte; +begin + sts := 'Loading file '+dfs+'....'; + Status(sts); + odfs := dfs; + Assign(df,dfs); + {$I-} + Reset(df,1); + if IOResult<>0 then begin + TextMode(co80); + WriteLn('ERROR while trying to open file '+dfs+'.'); + Halt; + end; + {$I+} + BlockRead(df,tmp,blocksize,ec); + Close(df); + if (ec=0) then begin + TextMode(co80); + WriteLn('ERROR while reading file '+dfs+'.'); + Halt; + end; + sts := sts + V2S(ec) + ' Bytes read.'; + Status(sts); + offs:=0; + repeat + Inc(offs); + until ((tmp[offs-1]=#00) AND (tmp[offs]=#72) AND (tmp[offs+1]=#00) AND (tmp[offs+2]=#14)) OR (offs=ec-2); + if (offs=ec-2) then begin + TextMode(co80); + WriteLn('ERROR while searching graphic offset. (Wrong file?)'); + Halt; + end; + Inc(offs,9); + sts := sts + ' Offset is '+V2S(offs)+'.'; + Status(sts); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (tmp[(j-1)*72+i+offs]='1') then graphic[i,j]:=true else graphic[i,j]:=false; + end; + end; + sts := sts + ' File is now in buffer.'; + Status(sts); + if (Copy(dfs,Length(dfs)-2,3)='ngg') then savefmt := 'NGG' + else if (Copy(dfs,Length(dfs)-2,3)='nol') then savefmt := 'NOL'; +end; + +procedure ClearBuf; +var i,j: byte; +begin + for j:=1 to 14 do begin + for i:=1 to 72 do begin + graphic[i,j]:=false; + end; + end; + Status('Graphics buffer cleared.'); +end; + +procedure PaintMash; +var i,j: byte; +begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(xd,yd,xd+576,yd+135); + SetFillStyle(SolidFill,biginact); + Bar(xd,yd,xd+72*zd,yd+14*zd); + SetFillStyle(SolidFill,smainact); + Bar(xd,yd+120,xd+73,yd+135); + SetColor(smaline); Rectangle(xd,yd+120,xd+73,yd+135); + if (zd>3) then begin + SetColor(bigline); Rectangle(xd,yd,xd+72*zd,yd+14*zd); + for i:=1 to 71 do Line(xd+i*zd,yd+1,xd+i*zd,yd+14*zd-1); + for i:=1 to 13 do Line(xd+1,yd+i*zd,xd+72*zd-1,yd+i*zd); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (graphic[i,j]) then begin + SetFillStyle(SolidFill,bigact); + FloodFill(xd+i*zd-zd DIV 2,yd+j*zd-zd DIV 2,bigline); + PutPixel(xd+i,yd+120+j,smaact); + end; + end; + end; + end else begin + SetColor(bigline); Rectangle(xd,yd,xd+72*zd+1,yd+14*zd+1); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (graphic[i,j]) then begin + SetFillStyle(SolidFill,bigact); + PutPixel(xd+i,yd+120+j,smaact); + Bar(xd+(i-1)*zd+1,yd+(j-1)*zd+1,xd+i*zd,yd+j*zd); + end else begin + SetFillStyle(SolidFill,biginact); + PutPixel(xd+i,yd+120+j,smainact); + Bar(xd+(i-1)*zd+1,yd+(j-1)*zd+1,xd+i*zd,yd+j*zd); + end; + end; + end; + end; + ShowMouse(true); +end; + +procedure PrintZFact; +var tmp: string; +begin + SetFillStyle(SolidFill,7); + Bar(590,75,633,86); + SetTextJustify(CenterText,CenterText); + SetTextStyle(SmallFont,HorizDir,4); + Str(zd,tmp); + tmp := tmp+'x'; + SetColor(0); + ShowMouse(false); + OutTextXY(611,80,tmp); + OutTextXY(612,80,tmp); + ShowMouse(true); +end; + +procedure UpdatePix(x,y: word); +begin + ShowMouse(false); + if (zd>3) then begin + if (graphic[x,y]) then begin + SetFillStyle(SolidFill,bigact); + FloodFill(xd+x*zd-zd DIV 2,yd+y*zd-zd DIV 2,bigline); + PutPixel(xd+x,yd+120+y,smaact); + end else begin + SetFillStyle(SolidFill,biginact); + FloodFill(xd+x*zd-zd DIV 2,yd+y*zd-zd DIV 2,bigline); + PutPixel(xd+x,yd+120+y,smainact); + end; + end else begin + if (graphic[x,y]) then begin + SetFillStyle(SolidFill,bigact); + PutPixel(xd+x,yd+120+y,smaact); + Bar(xd+(x-1)*zd+1,yd+(y-1)*zd+1,xd+x*zd,yd+y*zd); + end else begin + SetFillStyle(SolidFill,biginact); + PutPixel(xd+x,yd+120+y,smainact); + Bar(xd+(x-1)*zd+1,yd+(y-1)*zd+1,xd+x*zd,yd+y*zd); + end; + end; + ShowMouse(true); +end; + +procedure MakeEditorWindow; +begin + ShowMouse(false); + MakeWindow(0,0,639,467,'Graphics editor ['+dfs+']'); + MakeButton(590,24,633,74,'ZOOM+'); + MakeButton(590,87,633,137,'ZOOM-'); + MakeButton(5,442,70,462,'New'); + MakeButton(75,442,140,462,'Load'); + MakeButton(145,442,210,462,'Save'); + MakeButton(215,442,280,462,'Quit'); + PrintZFact; + PaintMash; + ShowMouse(true); +end; + +function CheckName(fn: string): boolean; +var i: word; + checkok: boolean; +begin + checkok := true; + if (Length(fn)>12) then checkok:=false; + for i:=1 to Length(fn) do begin + if (fn[i])='.' then begin + if (i>9) OR (i<2) then checkok:=false; + if (Length(fn)-i>3) OR (Length(fn)-i<1) then checkok:=false; + end; + end; + CheckName := checkok; +end; + +function CheckExist(fn: string): boolean; +var testf: file; +begin + Assign(testf,fn); + {$I-} + Reset(testf,1); + if (IOResult=0) then begin + Close(testf); + {$I+} + CheckExist := true; + Exit; + end; + CheckExist := false; +end; + +function StripExt(fn: string): string; +var i: word; +begin + for i:=1 to Length(fn) do begin + if fn[i]='.' then begin + StripExt := Copy(fn,1,i-1); + Exit; + end; + end; + StripExt := fn; +end; + +procedure MapExt(var fn: string;ext: string); +var i: word; +begin + fn := StripExt(fn); + if Length(fn)>8 then fn:=Copy(fn,1,8); + fn := fn + '.' + LowCase(ext); +end; + +procedure PaintRadios; +begin + MakeBeveledButton(140,320,275,360,''); + if (savefmt='NGG') then begin + MakeBevRadiobutton(150,330,'NOKIA Group-Graphic'); + end else MakeRadiobutton(150,330,'NOKIA Group-Graphic'); + if (savefmt='NOL') then begin + MakeBevRadiobutton(150,340,'NOKIA Operator-Logo'); + end else MakeRadiobutton(150,340,'NOKIA Operator-Logo'); + gui_dis := true; + if (savefmt='B1N') then begin + MakeBevRadiobutton(150,350,'Binary format'); + end else MakeRadiobutton(150,350,'Binary format'); + gui_dis := false; + MapExt(dfs,savefmt); +end; + +procedure CheckFile(fn: string); +var line1,line2: string; + colr1,colr2: byte; + testf: file; + testimg: array[1..72,1..14] of boolean; + tmp: array[0..blocksize] of char; + ec: word; + offs: word; + i,j: byte; +begin + line1:=''; + line2:=''; + colr1:=0; + colr2:=0; + SetFillStyle(SolidFill,7); + Bar(300,300,505,350); + if (NOT CheckName(fn)) then begin + colr1 := 12; + line1 := 'Invalid filename'; + colr2 := 6; + line2 := 'Enter a valid filename'; + end; + if (line1='') then begin + Assign(testf,fn); + {$I-} + Reset(testf,1); + if (IOResult=0) then begin + colr1 := 12; + line1 := 'File exists!'; + colr2 := 2; + line2 := 'Enter another filename'; + Blockread(testf,tmp,blocksize,ec); + Close(testf); + if (ec=0) then begin + { NOT READABLE } + Exit; + end; + offs:=0; + repeat + Inc(offs); + until ((tmp[offs-1]=#00) AND (tmp[offs]=#72) AND (tmp[offs+1]=#00) AND (tmp[offs+2]=#14)) OR (offs=ec-2); + if (offs=ec-2) then begin + { NO OFFSET } + Exit; + end; + Inc(offs,9); + SetColor(0); + Rectangle(427,324,500,339); + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (tmp[(j-1)*72+i+offs]='1') then PutPixel(427+i,324+j,0) else PutPixel(427+i,324+j,10); + end; + end; + end; + {$I+} + end; + SetTextJustify(RightText, CenterText); + SetTextStyle(SmallFont,HorizDir,4); + SetColor(colr1); + OutTextXY(500,303,line1); + OutTextXY(499,303,line1); + SetColor(colr2); + OutTextXY(500,313,line2); + OutTextXY(499,313,line2); +end; + +procedure SaveFile; +const NGGhead: array[0..15] of char=(#78,#71,#71,#00,#01,#00,#72,#00,#14,#00, + #01,#00,#01,#00,#76,#00); + NGGhl=15; + NOLhead: array[0..19] of char=(#78,#79,#76,#00,#01,#00,#249,#01,#01,#00, + #72,#00,#14,#00,#01,#00,#01,#00,#87,#00); + NOLhl=19; + Foot: string='File saved by Markus Birth''s Graphic Editor. Go to http://www.webwriters.de'; +var oldfs: string; + Key: char; + Cont, alrchg, over: boolean; + savf: file; + savbuf: array[0..blocksize] of char; + sbo,sbc,ec: word; + i,j: word; +begin + Cont := false; + alrchg := false; + ShowMouse(false); + MakeWindow(120,170,520,420,'Save file'); + MakeButton(125,395,323,415,'SAVE NOW!'); + MakeButton(327,395,515,415,'Cancel'); + SetTextStyle(SmallFont,HorizDir,4); + SetTextJustify(LeftText,BottomText); + OutTextXY(141,247,'Filename:'); + OutTextXY(141,317,'Format:'); + MakeBeveledButton(140,250,500,295,''); + PaintRadios; + + ShowMouse(true); + + SetColor(8); + SetTextStyle(TripleXFont,HorizDir,5); + SetTextJustify(LeftText,CenterText); + OutTextXY(145,266,dfs); + CheckFile(dfs); + oldfs := dfs; + + repeat + repeat + over := false; + MouseStat(mx,my,mb); + if (dfs<>oldfs) then begin + ShowMouse(false); + MakeBeveledButton(140,250,500,295,''); + SetColor(0); + SetTextStyle(TripleXFont,HorizDir,5); + SetTextJustify(LeftText,CenterText); + OutTextXY(145,266,dfs); + CheckFile(dfs); + oldfs := dfs; + ShowMouse(true); + end; + if MouseOver(125,395,323,415) then begin + over := true; + Status('Click to save the graphic as '+dfs); + if (mb=1) then MakeBeveledButton(125,395,323,415,'SAVE NOW!'); + end; + if MouseOver(327,395,515,415) then begin + over := true; + Status('Cancel this operation'); + if (mb=1) then begin + MakeBeveledButton(327,395,515,415,'Cancel'); + Key := #27; + dfs := odfs; + end; + end; + if MouseOver(145,325,270,334) then begin + over := true; + Status('Change format to NOKIA Group-Graphic'); + if (mb=1) then begin + savefmt := 'NGG'; + PaintRadios; + MapExt(dfs,savefmt); + repeat MouseStat(mx,my,mb); until (mb=0); + end; + end; + if MouseOver(145,335,270,344) then begin + over := true; + Status('Change format to NOKIA Operator-Logo'); + if (mb=1) then begin + savefmt := 'NOL'; + PaintRadios; + MapExt(dfs,savefmt); + repeat MouseStat(mx,my,mb); until (mb=0); + end; + end; + if MouseOver(145,345,270,354) then begin + over := true; + Status('Change format to binary [not yet implemented]'); + end; + if ((NOT over) AND (oldstat<>'')) then ClearStatus; + StatusTime(false); + until (keypressed) OR (((MouseOver(125,395,323,415)) OR (MouseOver(327,395,515,415))) AND (mb=1)); + ClearStatus; + if (keypressed) then Key := ReadKey; + if (MouseOver(125,395,323,415)) AND (mb=1) then Key := #13; + repeat MouseStat(mx,my,mb); until (mb=0); + case Key of + #08: begin + if (Length(StripExt(dfs))>0) then begin + dfs := Copy(StripExt(dfs),1,Length(StripExt(dfs))-1); + MapExt(dfs,savefmt); + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + end; + #27: begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(120,170,520,420); + ShowMouse(true); + Exit; + end; + #13: begin + if (NOT CheckName(dfs)) OR (CheckExist(dfs)) then begin + Sound(800); + Delay(50); + NoSound; + Key := #00; + if (NOT CheckName(dfs)) then Alert('Invalid filename.'); + if (CheckExist(dfs)) then Alert('File exists on disk.'); + MakeButton(125,395,323,415,'SAVE NOW!'); + end; + end; + else + if (Key IN [#65..#90]) OR (Key IN [#48..#58]) OR (Key IN [#97..#122]) OR (Key='-') OR (Key='_') then begin + if (Length(StripExt(dfs))<8) then begin + if (dfs=odfs) AND (NOT alrchg) then begin + dfs := LowCase(key); + alrchg := true; + end else begin + dfs := StripExt(dfs)+LowCase(Key); + alrchg := true; + end; + MapExt(dfs,savefmt); + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + end else begin + Sound(1200); + Delay(50); + NoSound; + end; + end; + until (Key=#13) OR (Key=#27); + if (Key=#27) then Exit; + Assign(savf,dfs); + {$I-} + Rewrite(savf,1); + if (IOResult<>0) then begin + TextMode(co80); + WriteLn('ERROR while opening output file.'); + Halt; + end; + {$I+} + if (savefmt='NGG') then begin + for i:=0 to NGGhl do begin + savbuf[i] := NGGhead[i]; + end; + sbo := NGGhl+1; + end else if (savefmt='NOL') then begin + for i:=0 to NOLhl do begin + savbuf[i] := NOLhead[i]; + end; + sbo := NOLhl+1; + end; + for j:=1 to 14 do begin + for i:=1 to 72 do begin + if (graphic[i,j]) then savbuf[sbo+(i-1)+(j-1)*72] := '1' else savbuf[sbo+(i-1)+(j-1)*72] := '0'; + end; + end; + for i:=1 to Length(foot) do begin + savbuf[sbo+1007+i] := foot[i]; + end; + savbuf[sbo+1008+Length(foot)] := #13; + sbc := sbo+1008+Length(foot)+1; + BlockWrite(savf,savbuf,sbc,ec); + Close(savf); + Alert('File saved.'); + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(120,170,520,420); + ShowMouse(true); +end; + +procedure Editor; +const ExitNow: boolean=false; +var i: byte; + ovso: boolean; + wx,wy,owx,owy: word; + xmx,xmy: word; + Key: char; +begin + MakeEditorWindow; + ShowMouse(true); + repeat + ovso:=false; + MouseStat(mx,my,mb); + wx := (mx-xd) DIV zd+1; + wy := (my-yd) DIV zd+1; + if (wx<>owx) OR (wy<>owy) then begin + if (wx>0) AND (wx<73) AND (wy>0) AND (wy<15) then begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(xd+80,yd+115,xd+200,yd+135); + SetTextJustify(CenterText,CenterText); + SetTextStyle(SmallFont,HorizDir,5); + SetColor(0); + OutTextXY(xd+140,yd+125,V2S(wx)+'/'+V2S(wy)); + OutTextXY(xd+141,yd+125,V2S(wx)+'/'+V2S(wy)); + owx:=wx; + owy:=wy; + ShowMouse(true); + end else if (owx<>0) AND (owy<>0) then begin + ShowMouse(false); + SetFillStyle(SolidFill,7); + Bar(xd+80,yd+115,xd+200,yd+135); + SetTextJustify(CenterText,CenterText); + SetTextStyle(SmallFont,HorizDir,5); + SetColor(8); + OutTextXY(xd+140,yd+125,'--/--'); + OutTextXY(xd+141,yd+125,'--/--'); + owx := 0; + owy := 0; + ShowMouse(true); + end; + end; + if (wx>0) AND (wx<73) AND (wy>0) AND (wy<15) then begin + if (mb=1) then begin + xmx:=mx; xmy:=my; repeat MouseStat(mx,my,mb); until (mb=0) OR (mx<>xmx) OR (my<>xmy); + graphic[wx,wy]:=true; + UpdatePix(wx,wy); + end else if (mb=2) then begin + xmx:=mx; xmy:=my; repeat MouseStat(mx,my,mb); until (mb=0) OR (mx<>xmx) OR (my<>xmy); + graphic[wx,wy]:=false; + UpdatePix(wx,wy); + end; + end; + if MouseOver(590,24,633,74) then begin + ovso:=true; + Status('Click to zoom in'); + if (mb=1) then begin + MakeBeveledButton(590,24,633,74,'ZOOM+'); + repeat MouseStat(mx,my,mb); until (mb=0); + if (zd<8) then begin + Inc(zd); + PaintMash; + PrintZFact; + end; + MakeButton(590,24,633,74,'ZOOM+'); + end; + end; + if MouseOver(590,75,633,86) then begin + ovso:=true; + Status('Click to repaint graphic'); + if (mb=1) then begin + repeat MouseStat(mx,my,mb); until (mb=0); + PaintMash; + PrintZFact; + owx := 255; owy := 255; + end; + end; + if MouseOver(590,87,633,137) then begin + ovso:=true; + Status('Click to zoom out'); + if (mb=1) then begin + MakeBeveledButton(590,87,633,137,'ZOOM-'); + repeat MouseStat(mx,my,mb); until (mb=0); + if (zd>2) then begin + Dec(zd); + PaintMash; + PrintZFact; + owx := 255; owy := 255; + end; + MakeButton(590,87,633,137,'ZOOM-'); + end; + end; + if MouseOver(5,442,70,462) then begin + ovso:=true; + Status('Click to clear the graphic completely. WARNING!'); + if (mb=1) then begin + MakeBeveledButton(5,442,70,462,'New'); + repeat MouseStat(mx,my,mb); until (mb=0); + ClearBuf; + dfs := 'untitled'; + MakeEditorWindow; + owx := 255; owy := 255; + end; + end; + if MouseOver(75,442,140,465) then begin + ovso:=true; + Status('Click to load another graphic'); + if (mb=1) then begin + MakeBeveledButton(75,442,140,462,'Load'); + repeat MouseStat(mx,my,mb); until (mb=0); + SelectFile; + if (dfs='untitled') then ClearBuf else if (dfs='noload') then dfs:=odfs else LoadFile; + MakeEditorWindow; + owx := 255; owy := 255; + end; + end; + if MouseOver(145,442,210,462) then begin + ovso:=true; + Status('Click here to save your file'); + if (mb=1) then begin + MakeBeveledButton(145,442,210,462,'Save'); + repeat MouseStat(mx,my,mb); until (mb=0); + ClearStatus; + SaveFile; + MakeButton(145,442,210,462,'Save'); + end; + end; + if MouseOver(215,442,280,462) then begin + ovso:=true; + Status('Click to quit this nice proggy. WARNING: SAVE YOUR FILE FIRST!'); + if (mb=1) then begin + MakeBeveledButton(215,442,280,462,'Quit'); + repeat MouseStat(mx,my,mb); until (mb=0); + Outit; + Halt; + end; + end; + if (NOT ovso) AND (oldstat<>'') then ClearStatus; + StatusTime(false); + if (keypressed) then Key:=ReadKey; + until (mb=3) OR (Key=#27) OR (ExitNow); +end; + +begin + Init; + MouseReset; + if (ParamCount<>1) then begin + StartScreen; + SelectFile; + if (dfs='untitled') then ClearBuf else if (dfs='noload') then dfs:=odfs else LoadFile; + end else begin + dfs:=ParamStr(1); + LoadFile; + InitPalette; + end; + somethinginmem := true; + Editor; + Outit; +end. \ No newline at end of file diff --git a/NOKIA_G/GRAPHICS.NGG b/NOKIA_G/GRAPHICS.NGG new file mode 100644 index 0000000..02add3d Binary files /dev/null and b/NOKIA_G/GRAPHICS.NGG differ diff --git a/NOKIA_G/GRAPHVW.PAS b/NOKIA_G/GRAPHVW.PAS new file mode 100644 index 0000000..9e204c2 --- /dev/null +++ b/NOKIA_G/GRAPHVW.PAS @@ -0,0 +1,58 @@ +program GraphView; + +uses Crt, Numbers; + +const blocksize=2048; + +var fn: file; + tmp: array[0..blocksize] of char; + ec: word; + i,j: byte; + k: word; + x: char; + offs: byte; + +begin + TextMode(co80+font8x8); + ClrScr; + Write('Reading file ',ParamStr(1),'....'); + Assign(fn,ParamStr(1)); + Reset(fn,1); + BlockRead(fn,tmp,blocksize,ec); + WriteLn(ec,' Bytes read'); + Close(fn); + Write('Looking for offset....'); + offs:=0; + repeat + Inc(offs); + until tmp[offs]=#72; + Inc(offs,9); + WriteLn('Offset is ',offs); + GotoXY( 1,10); Write(''); + GotoXY(74,10); Write(''); + GotoXY( 1,25); Write(''); + GotoXY(74,25); Write(''); + for i:=1 to 14 do begin + GotoXY(1,i+10); Write(''); + GotoXY(74,i+10); Write(''); + for j:=1 to 72 do begin + GotoXY(j+1,10); Write(''); + GotoXY(j+1,25); Write(''); + GotoXY(j+1,i+10); + x:=tmp[(i-1)*72+j+offs]; + if x='1' then Write('') else if x='0' then Write(' ') else Write(x); + end; + end; + GotoXY(1,26); Write('Header: '); + for k:=0 to offs do begin + Write(Dec2Hex(Ord(tmp[k])),' '); + end; + WriteLn; WriteLn; Write('Filetype-string: '); + for k:=offs+72*14+1 to ec do begin + Write(tmp[k]); + end; + WriteLn; WriteLn; + WriteLn('Press any key'); + ReadKey; + TextMode(co80); +end. \ No newline at end of file diff --git a/NOKIA_G/LUX_GSM.NOL b/NOKIA_G/LUX_GSM.NOL new file mode 100644 index 0000000..be335f8 Binary files /dev/null and b/NOKIA_G/LUX_GSM.NOL differ diff --git a/NOKIA_G/MUSIC.NGG b/NOKIA_G/MUSIC.NGG new file mode 100644 index 0000000..c8ec726 Binary files /dev/null and b/NOKIA_G/MUSIC.NGG differ diff --git a/NOKIA_G/MYLOVE.NGG b/NOKIA_G/MYLOVE.NGG new file mode 100644 index 0000000..ce79599 Binary files /dev/null and b/NOKIA_G/MYLOVE.NGG differ diff --git a/NOKIA_G/N00B.NGG b/NOKIA_G/N00B.NGG new file mode 100644 index 0000000..6d81051 Binary files /dev/null and b/NOKIA_G/N00B.NGG differ diff --git a/NOKIA_G/SINGTEL.NOL b/NOKIA_G/SINGTEL.NOL new file mode 100644 index 0000000..1834765 Binary files /dev/null and b/NOKIA_G/SINGTEL.NOL differ diff --git a/NOKIA_G/SONERA.NOL b/NOKIA_G/SONERA.NOL new file mode 100644 index 0000000..73f23b3 Binary files /dev/null and b/NOKIA_G/SONERA.NOL differ diff --git a/NOKIA_G/SONOFON.NOL b/NOKIA_G/SONOFON.NOL new file mode 100644 index 0000000..96ab9be Binary files /dev/null and b/NOKIA_G/SONOFON.NOL differ diff --git a/NOKIA_G/SUNS.NGG b/NOKIA_G/SUNS.NGG new file mode 100644 index 0000000..34e6c6b Binary files /dev/null and b/NOKIA_G/SUNS.NGG differ diff --git a/NOKIA_G/SWISSCM.NOL b/NOKIA_G/SWISSCM.NOL new file mode 100644 index 0000000..c43b091 Binary files /dev/null and b/NOKIA_G/SWISSCM.NOL differ diff --git a/NOKIA_G/TELENOR.NOL b/NOKIA_G/TELENOR.NOL new file mode 100644 index 0000000..002b033 Binary files /dev/null and b/NOKIA_G/TELENOR.NOL differ diff --git a/NOKIA_G/T_Mobil.nol b/NOKIA_G/T_Mobil.nol new file mode 100644 index 0000000..b649239 Binary files /dev/null and b/NOKIA_G/T_Mobil.nol differ diff --git a/NOKIA_G/VIAG.NOL b/NOKIA_G/VIAG.NOL new file mode 100644 index 0000000..050c2e9 Binary files /dev/null and b/NOKIA_G/VIAG.NOL differ diff --git a/NOKIA_G/VODAFONE.NOL b/NOKIA_G/VODAFONE.NOL new file mode 100644 index 0000000..69ab4c1 Binary files /dev/null and b/NOKIA_G/VODAFONE.NOL differ diff --git a/NOKIA_G/W.nol b/NOKIA_G/W.nol new file mode 100644 index 0000000..cdb4aa1 Binary files /dev/null and b/NOKIA_G/W.nol differ diff --git a/NOKIA_G/WW.NOL b/NOKIA_G/WW.NOL new file mode 100644 index 0000000..f78c8a1 Binary files /dev/null and b/NOKIA_G/WW.NOL differ diff --git a/NOKIA_G/ZA_MTN.NOL b/NOKIA_G/ZA_MTN.NOL new file mode 100644 index 0000000..823ef89 Binary files /dev/null and b/NOKIA_G/ZA_MTN.NOL differ diff --git a/NOKIA_G/australia_optus.nol b/NOKIA_G/australia_optus.nol new file mode 100644 index 0000000..505bb50 Binary files /dev/null and b/NOKIA_G/australia_optus.nol differ diff --git a/NOKIA_G/australia_optus_2.nol b/NOKIA_G/australia_optus_2.nol new file mode 100644 index 0000000..557a41b Binary files /dev/null and b/NOKIA_G/australia_optus_2.nol differ diff --git a/NOKIA_G/australia_optus_3.nol b/NOKIA_G/australia_optus_3.nol new file mode 100644 index 0000000..080873f Binary files /dev/null and b/NOKIA_G/australia_optus_3.nol differ diff --git a/NOKIA_G/australia_optus_4.nol b/NOKIA_G/australia_optus_4.nol new file mode 100644 index 0000000..3dfb740 Binary files /dev/null and b/NOKIA_G/australia_optus_4.nol differ diff --git a/NOKIA_G/australia_telstra.nol b/NOKIA_G/australia_telstra.nol new file mode 100644 index 0000000..02cab03 Binary files /dev/null and b/NOKIA_G/australia_telstra.nol differ diff --git a/NOKIA_G/australia_telstra_2.nol b/NOKIA_G/australia_telstra_2.nol new file mode 100644 index 0000000..301ac4e Binary files /dev/null and b/NOKIA_G/australia_telstra_2.nol differ diff --git a/NOKIA_G/australia_telstra_3.nol b/NOKIA_G/australia_telstra_3.nol new file mode 100644 index 0000000..967818a Binary files /dev/null and b/NOKIA_G/australia_telstra_3.nol differ diff --git a/NOKIA_G/austria_a1.nol b/NOKIA_G/austria_a1.nol new file mode 100644 index 0000000..de6cd3e Binary files /dev/null and b/NOKIA_G/austria_a1.nol differ diff --git a/NOKIA_G/austria_a1_2.nol b/NOKIA_G/austria_a1_2.nol new file mode 100644 index 0000000..c4ed9b1 Binary files /dev/null and b/NOKIA_G/austria_a1_2.nol differ diff --git a/NOKIA_G/austria_maxmobil.nol b/NOKIA_G/austria_maxmobil.nol new file mode 100644 index 0000000..af5522a Binary files /dev/null and b/NOKIA_G/austria_maxmobil.nol differ diff --git a/NOKIA_G/austria_maxmobil_2.nol b/NOKIA_G/austria_maxmobil_2.nol new file mode 100644 index 0000000..ac26fc0 Binary files /dev/null and b/NOKIA_G/austria_maxmobil_2.nol differ diff --git a/NOKIA_G/austria_one.nol b/NOKIA_G/austria_one.nol new file mode 100644 index 0000000..cc28e59 Binary files /dev/null and b/NOKIA_G/austria_one.nol differ diff --git a/NOKIA_G/belgium_mobistar.nol b/NOKIA_G/belgium_mobistar.nol new file mode 100644 index 0000000..22a3d34 Binary files /dev/null and b/NOKIA_G/belgium_mobistar.nol differ diff --git a/NOKIA_G/belgium_proximus.nol b/NOKIA_G/belgium_proximus.nol new file mode 100644 index 0000000..edb4636 Binary files /dev/null and b/NOKIA_G/belgium_proximus.nol differ diff --git a/NOKIA_G/croatia_cronet.nol b/NOKIA_G/croatia_cronet.nol new file mode 100644 index 0000000..8dc0bd9 Binary files /dev/null and b/NOKIA_G/croatia_cronet.nol differ diff --git a/NOKIA_G/croatia_cronet_2.nol b/NOKIA_G/croatia_cronet_2.nol new file mode 100644 index 0000000..7ef5d28 Binary files /dev/null and b/NOKIA_G/croatia_cronet_2.nol differ diff --git a/NOKIA_G/czech_eurotel.nol b/NOKIA_G/czech_eurotel.nol new file mode 100644 index 0000000..c75fa6c Binary files /dev/null and b/NOKIA_G/czech_eurotel.nol differ diff --git a/NOKIA_G/czech_radiomobil.nol b/NOKIA_G/czech_radiomobil.nol new file mode 100644 index 0000000..6ed8ee5 Binary files /dev/null and b/NOKIA_G/czech_radiomobil.nol differ diff --git a/NOKIA_G/czech_radiomobil_2.nol b/NOKIA_G/czech_radiomobil_2.nol new file mode 100644 index 0000000..382c74a Binary files /dev/null and b/NOKIA_G/czech_radiomobil_2.nol differ diff --git a/NOKIA_G/czech_radiomobil_3.nol b/NOKIA_G/czech_radiomobil_3.nol new file mode 100644 index 0000000..6bafb9d Binary files /dev/null and b/NOKIA_G/czech_radiomobil_3.nol differ diff --git a/NOKIA_G/czech_radiomobil_4.nol b/NOKIA_G/czech_radiomobil_4.nol new file mode 100644 index 0000000..1a27b37 Binary files /dev/null and b/NOKIA_G/czech_radiomobil_4.nol differ diff --git a/NOKIA_G/czech_radiomobil_5.nol b/NOKIA_G/czech_radiomobil_5.nol new file mode 100644 index 0000000..3710f85 Binary files /dev/null and b/NOKIA_G/czech_radiomobil_5.nol differ diff --git a/NOKIA_G/czech_telecom.nol b/NOKIA_G/czech_telecom.nol new file mode 100644 index 0000000..9f22687 Binary files /dev/null and b/NOKIA_G/czech_telecom.nol differ diff --git a/NOKIA_G/denmark_sonofon.nol b/NOKIA_G/denmark_sonofon.nol new file mode 100644 index 0000000..1a9333c Binary files /dev/null and b/NOKIA_G/denmark_sonofon.nol differ diff --git a/NOKIA_G/denmark_tele.nol b/NOKIA_G/denmark_tele.nol new file mode 100644 index 0000000..9831dac Binary files /dev/null and b/NOKIA_G/denmark_tele.nol differ diff --git a/NOKIA_G/denmark_telia.nol b/NOKIA_G/denmark_telia.nol new file mode 100644 index 0000000..36adf5b Binary files /dev/null and b/NOKIA_G/denmark_telia.nol differ diff --git a/NOKIA_G/estonia_emt.nol b/NOKIA_G/estonia_emt.nol new file mode 100644 index 0000000..de7c043 Binary files /dev/null and b/NOKIA_G/estonia_emt.nol differ diff --git a/NOKIA_G/finland_radiolinja.nol b/NOKIA_G/finland_radiolinja.nol new file mode 100644 index 0000000..615c131 Binary files /dev/null and b/NOKIA_G/finland_radiolinja.nol differ diff --git a/NOKIA_G/finland_sonera.nol b/NOKIA_G/finland_sonera.nol new file mode 100644 index 0000000..73f23b3 Binary files /dev/null and b/NOKIA_G/finland_sonera.nol differ diff --git a/NOKIA_G/finland_telia.nol b/NOKIA_G/finland_telia.nol new file mode 100644 index 0000000..7506406 Binary files /dev/null and b/NOKIA_G/finland_telia.nol differ diff --git a/NOKIA_G/france_bot.nol b/NOKIA_G/france_bot.nol new file mode 100644 index 0000000..dfa2aa1 Binary files /dev/null and b/NOKIA_G/france_bot.nol differ diff --git a/NOKIA_G/france_itineris.nol b/NOKIA_G/france_itineris.nol new file mode 100644 index 0000000..1b71d21 Binary files /dev/null and b/NOKIA_G/france_itineris.nol differ diff --git a/NOKIA_G/france_sfr.nol b/NOKIA_G/france_sfr.nol new file mode 100644 index 0000000..9257b56 Binary files /dev/null and b/NOKIA_G/france_sfr.nol differ diff --git a/NOKIA_G/germany_d1telekom.nol b/NOKIA_G/germany_d1telekom.nol new file mode 100644 index 0000000..328834c Binary files /dev/null and b/NOKIA_G/germany_d1telekom.nol differ diff --git a/NOKIA_G/germany_d1telekom_2.nol b/NOKIA_G/germany_d1telekom_2.nol new file mode 100644 index 0000000..e2230d8 Binary files /dev/null and b/NOKIA_G/germany_d1telekom_2.nol differ diff --git a/NOKIA_G/germany_d1telekom_3.nol b/NOKIA_G/germany_d1telekom_3.nol new file mode 100644 index 0000000..581d46e Binary files /dev/null and b/NOKIA_G/germany_d1telekom_3.nol differ diff --git a/NOKIA_G/germany_d1telekom_4.nol b/NOKIA_G/germany_d1telekom_4.nol new file mode 100644 index 0000000..1c1efa3 Binary files /dev/null and b/NOKIA_G/germany_d1telekom_4.nol differ diff --git a/NOKIA_G/germany_d1telekom_5.nol b/NOKIA_G/germany_d1telekom_5.nol new file mode 100644 index 0000000..b649239 Binary files /dev/null and b/NOKIA_G/germany_d1telekom_5.nol differ diff --git a/NOKIA_G/germany_d1telekom_6.nol b/NOKIA_G/germany_d1telekom_6.nol new file mode 100644 index 0000000..9101ec0 Binary files /dev/null and b/NOKIA_G/germany_d1telekom_6.nol differ diff --git a/NOKIA_G/germany_d1telekom_7.nol b/NOKIA_G/germany_d1telekom_7.nol new file mode 100644 index 0000000..88db53b Binary files /dev/null and b/NOKIA_G/germany_d1telekom_7.nol differ diff --git a/NOKIA_G/germany_d1telekom_8.nol b/NOKIA_G/germany_d1telekom_8.nol new file mode 100644 index 0000000..6603e3d Binary files /dev/null and b/NOKIA_G/germany_d1telekom_8.nol differ diff --git a/NOKIA_G/germany_d2privat.nol b/NOKIA_G/germany_d2privat.nol new file mode 100644 index 0000000..55f9d31 Binary files /dev/null and b/NOKIA_G/germany_d2privat.nol differ diff --git a/NOKIA_G/germany_eplus.nol b/NOKIA_G/germany_eplus.nol new file mode 100644 index 0000000..fe12722 Binary files /dev/null and b/NOKIA_G/germany_eplus.nol differ diff --git a/NOKIA_G/germany_eplus_tam.nol b/NOKIA_G/germany_eplus_tam.nol new file mode 100644 index 0000000..9d206fe Binary files /dev/null and b/NOKIA_G/germany_eplus_tam.nol differ diff --git a/NOKIA_G/germany_viaginterkom.nol b/NOKIA_G/germany_viaginterkom.nol new file mode 100644 index 0000000..050c2e9 Binary files /dev/null and b/NOKIA_G/germany_viaginterkom.nol differ diff --git a/NOKIA_G/germany_viaginterkom_2.nol b/NOKIA_G/germany_viaginterkom_2.nol new file mode 100644 index 0000000..770c98f Binary files /dev/null and b/NOKIA_G/germany_viaginterkom_2.nol differ diff --git a/NOKIA_G/greece_cosmote.nol b/NOKIA_G/greece_cosmote.nol new file mode 100644 index 0000000..0496c09 Binary files /dev/null and b/NOKIA_G/greece_cosmote.nol differ diff --git a/NOKIA_G/greece_cosmote_2.nol b/NOKIA_G/greece_cosmote_2.nol new file mode 100644 index 0000000..42d78af Binary files /dev/null and b/NOKIA_G/greece_cosmote_2.nol differ diff --git a/NOKIA_G/greece_panafon.nol b/NOKIA_G/greece_panafon.nol new file mode 100644 index 0000000..aa8737c Binary files /dev/null and b/NOKIA_G/greece_panafon.nol differ diff --git a/NOKIA_G/greece_telestet.nol b/NOKIA_G/greece_telestet.nol new file mode 100644 index 0000000..2fff0b0 Binary files /dev/null and b/NOKIA_G/greece_telestet.nol differ diff --git a/NOKIA_G/hongkong_hutchinson.nol b/NOKIA_G/hongkong_hutchinson.nol new file mode 100644 index 0000000..5b20dee Binary files /dev/null and b/NOKIA_G/hongkong_hutchinson.nol differ diff --git a/NOKIA_G/hongkong_newworld.nol b/NOKIA_G/hongkong_newworld.nol new file mode 100644 index 0000000..164ffc0 Binary files /dev/null and b/NOKIA_G/hongkong_newworld.nol differ diff --git a/NOKIA_G/hongkong_smartone_extra.nol b/NOKIA_G/hongkong_smartone_extra.nol new file mode 100644 index 0000000..dabfb63 Binary files /dev/null and b/NOKIA_G/hongkong_smartone_extra.nol differ diff --git a/NOKIA_G/hongkong_telecom_1010.nol b/NOKIA_G/hongkong_telecom_1010.nol new file mode 100644 index 0000000..bf35f3f Binary files /dev/null and b/NOKIA_G/hongkong_telecom_1010.nol differ diff --git a/NOKIA_G/hungary_pannon.nol b/NOKIA_G/hungary_pannon.nol new file mode 100644 index 0000000..2578e76 Binary files /dev/null and b/NOKIA_G/hungary_pannon.nol differ diff --git a/NOKIA_G/hungary_westel900.nol b/NOKIA_G/hungary_westel900.nol new file mode 100644 index 0000000..ee9958f Binary files /dev/null and b/NOKIA_G/hungary_westel900.nol differ diff --git a/NOKIA_G/hungary_westel900_2.nol b/NOKIA_G/hungary_westel900_2.nol new file mode 100644 index 0000000..167a8a8 Binary files /dev/null and b/NOKIA_G/hungary_westel900_2.nol differ diff --git a/NOKIA_G/indonesia_excelcom.nol b/NOKIA_G/indonesia_excelcom.nol new file mode 100644 index 0000000..1163277 Binary files /dev/null and b/NOKIA_G/indonesia_excelcom.nol differ diff --git a/NOKIA_G/indonesia_satelindo.nol b/NOKIA_G/indonesia_satelindo.nol new file mode 100644 index 0000000..b304cee Binary files /dev/null and b/NOKIA_G/indonesia_satelindo.nol differ diff --git a/NOKIA_G/indonesia_satelindo_2.nol b/NOKIA_G/indonesia_satelindo_2.nol new file mode 100644 index 0000000..d4af725 Binary files /dev/null and b/NOKIA_G/indonesia_satelindo_2.nol differ diff --git a/NOKIA_G/ireland_digifone.nol b/NOKIA_G/ireland_digifone.nol new file mode 100644 index 0000000..f3b7f37 Binary files /dev/null and b/NOKIA_G/ireland_digifone.nol differ diff --git a/NOKIA_G/italy_omnitel.nol b/NOKIA_G/italy_omnitel.nol new file mode 100644 index 0000000..17bfcaf Binary files /dev/null and b/NOKIA_G/italy_omnitel.nol differ diff --git a/NOKIA_G/italy_tim.nol b/NOKIA_G/italy_tim.nol new file mode 100644 index 0000000..a6bba46 Binary files /dev/null and b/NOKIA_G/italy_tim.nol differ diff --git a/NOKIA_G/italy_tim_2.nol b/NOKIA_G/italy_tim_2.nol new file mode 100644 index 0000000..df5c314 Binary files /dev/null and b/NOKIA_G/italy_tim_2.nol differ diff --git a/NOKIA_G/italy_tim_3.nol b/NOKIA_G/italy_tim_3.nol new file mode 100644 index 0000000..b6a0af3 Binary files /dev/null and b/NOKIA_G/italy_tim_3.nol differ diff --git a/NOKIA_G/italy_tim_4.nol b/NOKIA_G/italy_tim_4.nol new file mode 100644 index 0000000..40f8011 Binary files /dev/null and b/NOKIA_G/italy_tim_4.nol differ diff --git a/NOKIA_G/italy_tim_vita.nol b/NOKIA_G/italy_tim_vita.nol new file mode 100644 index 0000000..11cbcca Binary files /dev/null and b/NOKIA_G/italy_tim_vita.nol differ diff --git a/NOKIA_G/italy_tim_vita_2.nol b/NOKIA_G/italy_tim_vita_2.nol new file mode 100644 index 0000000..e263408 Binary files /dev/null and b/NOKIA_G/italy_tim_vita_2.nol differ diff --git a/NOKIA_G/italy_wind.nol b/NOKIA_G/italy_wind.nol new file mode 100644 index 0000000..9b2125c Binary files /dev/null and b/NOKIA_G/italy_wind.nol differ diff --git a/NOKIA_G/italy_wind_2.nol b/NOKIA_G/italy_wind_2.nol new file mode 100644 index 0000000..ce7ee70 Binary files /dev/null and b/NOKIA_G/italy_wind_2.nol differ diff --git a/NOKIA_G/italy_wind_3.nol b/NOKIA_G/italy_wind_3.nol new file mode 100644 index 0000000..a48c800 Binary files /dev/null and b/NOKIA_G/italy_wind_3.nol differ diff --git a/NOKIA_G/latvia_lmt.nol b/NOKIA_G/latvia_lmt.nol new file mode 100644 index 0000000..3f3ebdb Binary files /dev/null and b/NOKIA_G/latvia_lmt.nol differ diff --git a/NOKIA_G/lebanon_cellis.nol b/NOKIA_G/lebanon_cellis.nol new file mode 100644 index 0000000..7216a41 Binary files /dev/null and b/NOKIA_G/lebanon_cellis.nol differ diff --git a/NOKIA_G/lebanon_libancell.nol b/NOKIA_G/lebanon_libancell.nol new file mode 100644 index 0000000..8ca37e7 Binary files /dev/null and b/NOKIA_G/lebanon_libancell.nol differ diff --git a/NOKIA_G/lux_tango.nol b/NOKIA_G/lux_tango.nol new file mode 100644 index 0000000..e10bb3a Binary files /dev/null and b/NOKIA_G/lux_tango.nol differ diff --git a/NOKIA_G/more_logos.url b/NOKIA_G/more_logos.url new file mode 100644 index 0000000..e8586ad --- /dev/null +++ b/NOKIA_G/more_logos.url @@ -0,0 +1,4 @@ +[InternetShortcut] +URL=http://www.kessler-design.com/wireless/samples.php3 +IconFile=C:\WINDOWS\SYSTEM\SHELL32.DLL +IconIndex=13 diff --git a/NOKIA_G/netherlands_ben.nol b/NOKIA_G/netherlands_ben.nol new file mode 100644 index 0000000..5905336 Binary files /dev/null and b/NOKIA_G/netherlands_ben.nol differ diff --git a/NOKIA_G/netherlands_ben_2.nol b/NOKIA_G/netherlands_ben_2.nol new file mode 100644 index 0000000..9982049 Binary files /dev/null and b/NOKIA_G/netherlands_ben_2.nol differ diff --git a/NOKIA_G/netherlands_dutchtone.nol b/NOKIA_G/netherlands_dutchtone.nol new file mode 100644 index 0000000..5b4c506 Binary files /dev/null and b/NOKIA_G/netherlands_dutchtone.nol differ diff --git a/NOKIA_G/netherlands_dutchtone_2.nol b/NOKIA_G/netherlands_dutchtone_2.nol new file mode 100644 index 0000000..d603e6b Binary files /dev/null and b/NOKIA_G/netherlands_dutchtone_2.nol differ diff --git a/NOKIA_G/netherlands_kpn.nol b/NOKIA_G/netherlands_kpn.nol new file mode 100644 index 0000000..1137a13 Binary files /dev/null and b/NOKIA_G/netherlands_kpn.nol differ diff --git a/NOKIA_G/netherlands_kpn_2.nol b/NOKIA_G/netherlands_kpn_2.nol new file mode 100644 index 0000000..40a032c Binary files /dev/null and b/NOKIA_G/netherlands_kpn_2.nol differ diff --git a/NOKIA_G/netherlands_kpn_3.nol b/NOKIA_G/netherlands_kpn_3.nol new file mode 100644 index 0000000..a92a88e Binary files /dev/null and b/NOKIA_G/netherlands_kpn_3.nol differ diff --git a/NOKIA_G/netherlands_kpn_4.nol b/NOKIA_G/netherlands_kpn_4.nol new file mode 100644 index 0000000..2eae318 Binary files /dev/null and b/NOKIA_G/netherlands_kpn_4.nol differ diff --git a/NOKIA_G/netherlands_kpn_5.nol b/NOKIA_G/netherlands_kpn_5.nol new file mode 100644 index 0000000..8eede08 Binary files /dev/null and b/NOKIA_G/netherlands_kpn_5.nol differ diff --git a/NOKIA_G/netherlands_libertel.nol b/NOKIA_G/netherlands_libertel.nol new file mode 100644 index 0000000..e4153ea Binary files /dev/null and b/NOKIA_G/netherlands_libertel.nol differ diff --git a/NOKIA_G/netherlands_libertel_2.nol b/NOKIA_G/netherlands_libertel_2.nol new file mode 100644 index 0000000..70e9ed8 Binary files /dev/null and b/NOKIA_G/netherlands_libertel_2.nol differ diff --git a/NOKIA_G/netherlands_libertel_izi.nol b/NOKIA_G/netherlands_libertel_izi.nol new file mode 100644 index 0000000..d5fc27f Binary files /dev/null and b/NOKIA_G/netherlands_libertel_izi.nol differ diff --git a/NOKIA_G/netherlands_telfort.nol b/NOKIA_G/netherlands_telfort.nol new file mode 100644 index 0000000..d66ff63 Binary files /dev/null and b/NOKIA_G/netherlands_telfort.nol differ diff --git a/NOKIA_G/norway_netcom.nol b/NOKIA_G/norway_netcom.nol new file mode 100644 index 0000000..8daf08a Binary files /dev/null and b/NOKIA_G/norway_netcom.nol differ diff --git a/NOKIA_G/norway_netcom_2.nol b/NOKIA_G/norway_netcom_2.nol new file mode 100644 index 0000000..1e89b71 Binary files /dev/null and b/NOKIA_G/norway_netcom_2.nol differ diff --git a/NOKIA_G/norway_telenor.nol b/NOKIA_G/norway_telenor.nol new file mode 100644 index 0000000..002b033 Binary files /dev/null and b/NOKIA_G/norway_telenor.nol differ diff --git a/NOKIA_G/philippines_globetel.nol b/NOKIA_G/philippines_globetel.nol new file mode 100644 index 0000000..5bcf79d Binary files /dev/null and b/NOKIA_G/philippines_globetel.nol differ diff --git a/NOKIA_G/philippines_smart.nol b/NOKIA_G/philippines_smart.nol new file mode 100644 index 0000000..1b8d353 Binary files /dev/null and b/NOKIA_G/philippines_smart.nol differ diff --git a/NOKIA_G/philippines_smart_2.nol b/NOKIA_G/philippines_smart_2.nol new file mode 100644 index 0000000..47b3c8a Binary files /dev/null and b/NOKIA_G/philippines_smart_2.nol differ diff --git a/NOKIA_G/poland_eragsm.nol b/NOKIA_G/poland_eragsm.nol new file mode 100644 index 0000000..fdc0cbd Binary files /dev/null and b/NOKIA_G/poland_eragsm.nol differ diff --git a/NOKIA_G/poland_eragsm_2.nol b/NOKIA_G/poland_eragsm_2.nol new file mode 100644 index 0000000..9d844ba Binary files /dev/null and b/NOKIA_G/poland_eragsm_2.nol differ diff --git a/NOKIA_G/poland_eragsm_3.nol b/NOKIA_G/poland_eragsm_3.nol new file mode 100644 index 0000000..e95f7d0 Binary files /dev/null and b/NOKIA_G/poland_eragsm_3.nol differ diff --git a/NOKIA_G/poland_eragsm_4.nol b/NOKIA_G/poland_eragsm_4.nol new file mode 100644 index 0000000..d9eb367 Binary files /dev/null and b/NOKIA_G/poland_eragsm_4.nol differ diff --git a/NOKIA_G/poland_eragsm_taktak.nol b/NOKIA_G/poland_eragsm_taktak.nol new file mode 100644 index 0000000..309c524 Binary files /dev/null and b/NOKIA_G/poland_eragsm_taktak.nol differ diff --git a/NOKIA_G/poland_idea.nol b/NOKIA_G/poland_idea.nol new file mode 100644 index 0000000..248f4ed Binary files /dev/null and b/NOKIA_G/poland_idea.nol differ diff --git a/NOKIA_G/poland_idea_2.nol b/NOKIA_G/poland_idea_2.nol new file mode 100644 index 0000000..40a011a Binary files /dev/null and b/NOKIA_G/poland_idea_2.nol differ diff --git a/NOKIA_G/poland_plusgsm.nol b/NOKIA_G/poland_plusgsm.nol new file mode 100644 index 0000000..157e5f0 Binary files /dev/null and b/NOKIA_G/poland_plusgsm.nol differ diff --git a/NOKIA_G/poland_plusgsm_2.nol b/NOKIA_G/poland_plusgsm_2.nol new file mode 100644 index 0000000..4fccde8 Binary files /dev/null and b/NOKIA_G/poland_plusgsm_2.nol differ diff --git a/NOKIA_G/poland_plusgsm_3.nol b/NOKIA_G/poland_plusgsm_3.nol new file mode 100644 index 0000000..01ebae8 Binary files /dev/null and b/NOKIA_G/poland_plusgsm_3.nol differ diff --git a/NOKIA_G/poland_plusgsm_4.nol b/NOKIA_G/poland_plusgsm_4.nol new file mode 100644 index 0000000..40cba70 Binary files /dev/null and b/NOKIA_G/poland_plusgsm_4.nol differ diff --git a/NOKIA_G/poland_plusgsm_5.nol b/NOKIA_G/poland_plusgsm_5.nol new file mode 100644 index 0000000..2f3c5f0 Binary files /dev/null and b/NOKIA_G/poland_plusgsm_5.nol differ diff --git a/NOKIA_G/poland_plusgsm_6.nol b/NOKIA_G/poland_plusgsm_6.nol new file mode 100644 index 0000000..08b9cb9 Binary files /dev/null and b/NOKIA_G/poland_plusgsm_6.nol differ diff --git a/NOKIA_G/poland_plusgsm_simplus.nol b/NOKIA_G/poland_plusgsm_simplus.nol new file mode 100644 index 0000000..deb1fb2 Binary files /dev/null and b/NOKIA_G/poland_plusgsm_simplus.nol differ diff --git a/NOKIA_G/portugal_optimus.nol b/NOKIA_G/portugal_optimus.nol new file mode 100644 index 0000000..4162d98 Binary files /dev/null and b/NOKIA_G/portugal_optimus.nol differ diff --git a/NOKIA_G/portugal_telecel.nol b/NOKIA_G/portugal_telecel.nol new file mode 100644 index 0000000..fee8ebe Binary files /dev/null and b/NOKIA_G/portugal_telecel.nol differ diff --git a/NOKIA_G/portugal_tmn.nol b/NOKIA_G/portugal_tmn.nol new file mode 100644 index 0000000..e9d62b7 Binary files /dev/null and b/NOKIA_G/portugal_tmn.nol differ diff --git a/NOKIA_G/portugal_tmn_2.nol b/NOKIA_G/portugal_tmn_2.nol new file mode 100644 index 0000000..338858f Binary files /dev/null and b/NOKIA_G/portugal_tmn_2.nol differ diff --git a/NOKIA_G/romania_connex.nol b/NOKIA_G/romania_connex.nol new file mode 100644 index 0000000..5908265 Binary files /dev/null and b/NOKIA_G/romania_connex.nol differ diff --git a/NOKIA_G/romania_connex_2.nol b/NOKIA_G/romania_connex_2.nol new file mode 100644 index 0000000..1f0406f Binary files /dev/null and b/NOKIA_G/romania_connex_2.nol differ diff --git a/NOKIA_G/romania_connex_3.nol b/NOKIA_G/romania_connex_3.nol new file mode 100644 index 0000000..1b13ee1 Binary files /dev/null and b/NOKIA_G/romania_connex_3.nol differ diff --git a/NOKIA_G/russia_mts.nol b/NOKIA_G/russia_mts.nol new file mode 100644 index 0000000..63b44ff Binary files /dev/null and b/NOKIA_G/russia_mts.nol differ diff --git a/NOKIA_G/russia_mts_2.nol b/NOKIA_G/russia_mts_2.nol new file mode 100644 index 0000000..b832829 Binary files /dev/null and b/NOKIA_G/russia_mts_2.nol differ diff --git a/NOKIA_G/singapore_m1.nol b/NOKIA_G/singapore_m1.nol new file mode 100644 index 0000000..e2f48ca Binary files /dev/null and b/NOKIA_G/singapore_m1.nol differ diff --git a/NOKIA_G/singapore_singtel1800.nol b/NOKIA_G/singapore_singtel1800.nol new file mode 100644 index 0000000..646bb34 Binary files /dev/null and b/NOKIA_G/singapore_singtel1800.nol differ diff --git a/NOKIA_G/singapore_singtel900.nol b/NOKIA_G/singapore_singtel900.nol new file mode 100644 index 0000000..1834765 Binary files /dev/null and b/NOKIA_G/singapore_singtel900.nol differ diff --git a/NOKIA_G/slovak_eurotel.nol b/NOKIA_G/slovak_eurotel.nol new file mode 100644 index 0000000..251e3e7 Binary files /dev/null and b/NOKIA_G/slovak_eurotel.nol differ diff --git a/NOKIA_G/slovak_eurotel_2.nol b/NOKIA_G/slovak_eurotel_2.nol new file mode 100644 index 0000000..5d4c777 Binary files /dev/null and b/NOKIA_G/slovak_eurotel_2.nol differ diff --git a/NOKIA_G/slovak_globtel.nol b/NOKIA_G/slovak_globtel.nol new file mode 100644 index 0000000..23470e9 Binary files /dev/null and b/NOKIA_G/slovak_globtel.nol differ diff --git a/NOKIA_G/slovak_globtel_2.nol b/NOKIA_G/slovak_globtel_2.nol new file mode 100644 index 0000000..4ab9fee Binary files /dev/null and b/NOKIA_G/slovak_globtel_2.nol differ diff --git a/NOKIA_G/slovak_globtel_3.nol b/NOKIA_G/slovak_globtel_3.nol new file mode 100644 index 0000000..a52eb0c Binary files /dev/null and b/NOKIA_G/slovak_globtel_3.nol differ diff --git a/NOKIA_G/slovak_globtel_4.nol b/NOKIA_G/slovak_globtel_4.nol new file mode 100644 index 0000000..001b188 Binary files /dev/null and b/NOKIA_G/slovak_globtel_4.nol differ diff --git a/NOKIA_G/slovenia_mobitel.nol b/NOKIA_G/slovenia_mobitel.nol new file mode 100644 index 0000000..762c2b5 Binary files /dev/null and b/NOKIA_G/slovenia_mobitel.nol differ diff --git a/NOKIA_G/slovenia_simobil.nol b/NOKIA_G/slovenia_simobil.nol new file mode 100644 index 0000000..b04bbe9 Binary files /dev/null and b/NOKIA_G/slovenia_simobil.nol differ diff --git a/NOKIA_G/spain_airtel.nol b/NOKIA_G/spain_airtel.nol new file mode 100644 index 0000000..1a54d5b Binary files /dev/null and b/NOKIA_G/spain_airtel.nol differ diff --git a/NOKIA_G/spain_airtel_2.nol b/NOKIA_G/spain_airtel_2.nol new file mode 100644 index 0000000..54e4e23 Binary files /dev/null and b/NOKIA_G/spain_airtel_2.nol differ diff --git a/NOKIA_G/spain_airtel_3.nol b/NOKIA_G/spain_airtel_3.nol new file mode 100644 index 0000000..cc1b038 Binary files /dev/null and b/NOKIA_G/spain_airtel_3.nol differ diff --git a/NOKIA_G/spain_amena.nol b/NOKIA_G/spain_amena.nol new file mode 100644 index 0000000..f2f64a7 Binary files /dev/null and b/NOKIA_G/spain_amena.nol differ diff --git a/NOKIA_G/spain_movistar.nol b/NOKIA_G/spain_movistar.nol new file mode 100644 index 0000000..407b35b Binary files /dev/null and b/NOKIA_G/spain_movistar.nol differ diff --git a/NOKIA_G/sweden_dof.nol b/NOKIA_G/sweden_dof.nol new file mode 100644 index 0000000..89f785d Binary files /dev/null and b/NOKIA_G/sweden_dof.nol differ diff --git a/NOKIA_G/sweden_europolitan.nol b/NOKIA_G/sweden_europolitan.nol new file mode 100644 index 0000000..6d71986 Binary files /dev/null and b/NOKIA_G/sweden_europolitan.nol differ diff --git a/NOKIA_G/sweden_europolitan_2.nol b/NOKIA_G/sweden_europolitan_2.nol new file mode 100644 index 0000000..e4ab076 Binary files /dev/null and b/NOKIA_G/sweden_europolitan_2.nol differ diff --git a/NOKIA_G/sweden_europolitan_3.nol b/NOKIA_G/sweden_europolitan_3.nol new file mode 100644 index 0000000..077febc Binary files /dev/null and b/NOKIA_G/sweden_europolitan_3.nol differ diff --git a/NOKIA_G/sweden_europolitan_4.nol b/NOKIA_G/sweden_europolitan_4.nol new file mode 100644 index 0000000..530e776 Binary files /dev/null and b/NOKIA_G/sweden_europolitan_4.nol differ diff --git a/NOKIA_G/sweden_telia.nol b/NOKIA_G/sweden_telia.nol new file mode 100644 index 0000000..abe5684 Binary files /dev/null and b/NOKIA_G/sweden_telia.nol differ diff --git a/NOKIA_G/sweden_telia_2.nol b/NOKIA_G/sweden_telia_2.nol new file mode 100644 index 0000000..7ca34a2 Binary files /dev/null and b/NOKIA_G/sweden_telia_2.nol differ diff --git a/NOKIA_G/sweden_telia_3.nol b/NOKIA_G/sweden_telia_3.nol new file mode 100644 index 0000000..e41c431 Binary files /dev/null and b/NOKIA_G/sweden_telia_3.nol differ diff --git a/NOKIA_G/sweden_telia_4.nol b/NOKIA_G/sweden_telia_4.nol new file mode 100644 index 0000000..eafccd3 Binary files /dev/null and b/NOKIA_G/sweden_telia_4.nol differ diff --git a/NOKIA_G/sweden_telia_5.nol b/NOKIA_G/sweden_telia_5.nol new file mode 100644 index 0000000..76f0b72 Binary files /dev/null and b/NOKIA_G/sweden_telia_5.nol differ diff --git a/NOKIA_G/switzerland_diax.nol b/NOKIA_G/switzerland_diax.nol new file mode 100644 index 0000000..5427091 Binary files /dev/null and b/NOKIA_G/switzerland_diax.nol differ diff --git a/NOKIA_G/switzerland_diax_2.nol b/NOKIA_G/switzerland_diax_2.nol new file mode 100644 index 0000000..b6a10e5 Binary files /dev/null and b/NOKIA_G/switzerland_diax_2.nol differ diff --git a/NOKIA_G/switzerland_swisscom.nol b/NOKIA_G/switzerland_swisscom.nol new file mode 100644 index 0000000..c43b091 Binary files /dev/null and b/NOKIA_G/switzerland_swisscom.nol differ diff --git a/NOKIA_G/turkey_telsim.nol b/NOKIA_G/turkey_telsim.nol new file mode 100644 index 0000000..d20c68f Binary files /dev/null and b/NOKIA_G/turkey_telsim.nol differ diff --git a/NOKIA_G/turkey_telsim_2.nol b/NOKIA_G/turkey_telsim_2.nol new file mode 100644 index 0000000..4d131ce Binary files /dev/null and b/NOKIA_G/turkey_telsim_2.nol differ diff --git a/NOKIA_G/turkey_turkcell.nol b/NOKIA_G/turkey_turkcell.nol new file mode 100644 index 0000000..8b83882 Binary files /dev/null and b/NOKIA_G/turkey_turkcell.nol differ diff --git a/NOKIA_G/turkey_turkcell_2.nol b/NOKIA_G/turkey_turkcell_2.nol new file mode 100644 index 0000000..d61f731 Binary files /dev/null and b/NOKIA_G/turkey_turkcell_2.nol differ diff --git a/NOKIA_G/turkey_turkcell_3.nol b/NOKIA_G/turkey_turkcell_3.nol new file mode 100644 index 0000000..1d4e955 Binary files /dev/null and b/NOKIA_G/turkey_turkcell_3.nol differ diff --git a/NOKIA_G/turkey_turkcell_4.nol b/NOKIA_G/turkey_turkcell_4.nol new file mode 100644 index 0000000..a6fb3a7 Binary files /dev/null and b/NOKIA_G/turkey_turkcell_4.nol differ diff --git a/NOKIA_G/uk_cellnet.nol b/NOKIA_G/uk_cellnet.nol new file mode 100644 index 0000000..12c8cdb Binary files /dev/null and b/NOKIA_G/uk_cellnet.nol differ diff --git a/NOKIA_G/uk_cellnet_2.nol b/NOKIA_G/uk_cellnet_2.nol new file mode 100644 index 0000000..05db9a8 Binary files /dev/null and b/NOKIA_G/uk_cellnet_2.nol differ diff --git a/NOKIA_G/uk_one2one.nol b/NOKIA_G/uk_one2one.nol new file mode 100644 index 0000000..9817782 Binary files /dev/null and b/NOKIA_G/uk_one2one.nol differ diff --git a/NOKIA_G/uk_orange.nol b/NOKIA_G/uk_orange.nol new file mode 100644 index 0000000..6ec0521 Binary files /dev/null and b/NOKIA_G/uk_orange.nol differ diff --git a/NOKIA_G/uk_vodafone.nol b/NOKIA_G/uk_vodafone.nol new file mode 100644 index 0000000..69ab4c1 Binary files /dev/null and b/NOKIA_G/uk_vodafone.nol differ diff --git a/NUM2TXT.PAS b/NUM2TXT.PAS new file mode 100644 index 0000000..296c2ad --- /dev/null +++ b/NUM2TXT.PAS @@ -0,0 +1,273 @@ +program Num2Txt; { Invented and programmed by Markus Birth } +uses Crt, Logo; + +label Ready, Again; + +const + one = 'eins'; + one1 = 'ein'; + one2 = 'eine'; + eleven = 'elf'; + two = 'zwei'; + twelve = 'zwlf'; + three = 'drei'; + four = 'vier'; + five = 'fnf'; + six = 'sechs'; + six1 = 'sech'; + seven = 'sieben'; + seven1 = 'sieb'; + eight = 'acht'; + nine = 'neun'; + zero = 'null'; + teen = 'zehn'; + twen = 'zwan'; + and1 = 'und'; + ty = 'zig'; + ty1 = 'ig'; + hundred = 'hundert'; + thousand = 'tausend'; + mill = 'mill'; + ion = 'ion'; + ion1 = 'ionen'; + iard = 'iarde'; + iard1 = 'iarden'; + minus = 'minus'; + point = 'komma'; + connector = ''; + language = 'GERMAN'; + +var Number: real; + NText: string; + Chosen: Char; + Mrd: real; + Mil: real; + Tau: real; + Hun: real; + +procedure Combi(Source: string); + begin + NText := NText + Source + connector; + end; + +procedure ZeichMal; + begin + GotoXY(1,7); + WriteLn(NText); + end; + +procedure ConvertHundred(dreier: real); + var H, Z, E, Z1: integer; + begin + H := Trunc(dreier/100); + Z := Trunc(dreier/10) - H*10; + E := Trunc(dreier) - Z*10 - H*100; + Z1 := E + Z*10; + case H of + 1: Combi(one1); + 2: Combi(two); + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six); + 7: Combi(seven); + 8: Combi(eight); + 9: Combi(nine); + end; + if H<>0 then Combi(hundred); + + case Z1 of { 10, 11 oder 12 } + 10: Combi(teen); + 11: Combi(eleven); + 12: Combi(twelve); + end; + + if (Z=1) AND (E>2) then { Einser von 13-19 } + begin + case E of + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six1); + 7: Combi(seven1); + 8: Combi(eight); + 9: Combi(nine); + end; + Combi(teen); + end; + + if Z>1 then { Einser, Rest } + begin + case E of + 1: Combi(one1); + 2: Combi(two); + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six); + 7: Combi(seven); + 8: Combi(eight); + 9: Combi(nine); + end; + end; + if (E<>0) AND (Z>1) then Combi(and1); + + case Z of { Zehner } + 2: Combi(twen); + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six1); + 7: Combi(seven1); + 8: Combi(eight); + 9: Combi(nine); + end; + if (Z<>3) AND (Z>1) then Combi(ty); + if Z=3 then Combi(ty1); + + if Z=0 then { einstellige Zahlen } + begin + if E=1 then + begin + if (dreier=Hun) then Combi(one); + if dreier=Tau then Combi(one1); + if (dreier<>Hun) AND (dreier<>Tau) then Combi(one2); + end; + case E of + 2: Combi(two); + 3: Combi(three); + 4: Combi(four); + 5: Combi(five); + 6: Combi(six); + 7: Combi(seven); + 8: Combi(eight); + 9: Combi(nine); + end; + end; + end; + +begin + ClrScr; + TextColor(15); { White } + WriteLn('Another fine program from'); + WriteLogo; + WriteLn; + TextColor(14); { Yellow } + WriteLn('-= Number2Text Converter =-'); + WriteLn; + TextColor(7); { LightGray } + WriteLn('Press any key to continue...'); + ReadKey; +Again: + NText := connector; + ClrScr; + TextColor(14); { Yellow } + TextBackground(1); { Blue } + Write(' -= Num2Text =- '); + TextColor(7); { LightGray } + TextBackground(0); { Black } + WriteLn(' written by RoboCop IND. of TRC Inc.'); + WriteLn; + TextColor(14); { Yellow } + Write('Enter a number: '); + TextColor(15); { White } + ReadLn(Number); + TextColor(14); { Yellow } + WriteLn('Beginning process using '+language+' language set ...'); + if Number<0 then + begin + Combi(minus); + end; + Number := Abs(Number); + if Number=0 then + begin + Combi(zero); + goto Ready; + end; + +ZeichMal; + +{ Milliarden } + Mrd := Int(Number / 1000000000); + if Mrd=1 then + begin + Combi(one2); + Combi(mill); + Combi(iard); + end; + if Mrd=2 then + begin + Combi(two); + Combi(mill); + Combi(iard1); + end; + +ZeichMal; + +{ Millionen } + Mil := Int(Number / 1000000) - Mrd*1000; + if Mil=1 then + begin + Combi(one2); + Combi(mill); + Combi(ion); + end; + if Mil>1 then + begin + ConvertHundred(Mil); + Combi(mill); + Combi(ion1); + end; + +ZeichMal; + +{ Tausend } + Tau := Int(Number / 1000) - Mil*1000 - Mrd*1000000; + ConvertHundred(Tau); + if Tau<>0 then Combi(thousand); + +ZeichMal; + +{ Hunderter } + Hun := Int(Number) - Tau*1000 - Mil*1000000 - Mrd*1000000000; + ConvertHundred(Hun); + +ZeichMal; + +Ready: + GotoXY(1,6); + WriteLn('Number converted to text with following result:'); + TextColor(15); { White } + WriteLn(NText); + WriteLn; + TextColor(14); { Yellow } + Write('Again (Y/N)? '); + Chosen := ReadKey; + if Chosen='y' then goto Again; + if Chosen='Y' then goto Again; + ClrScr; + TextColor(7); { LightGray } + WriteLn('Exiting...'); + WriteLn; + if Chosen='!' then + begin + WriteLn('Greetz are going out to:'); + TextColor(12); { LightRed } + Write('Mister X, '); + TextColor(10); { LightGreen } + Write('Fred Krger, '); + TextColor(11); { LightCyan } + Write('Calle vHH, '); + TextColor(14); { Yellow } + Write('Memphis, '); + TextColor(13); { LightMagenta } + Write('Scorpion '); + TextColor(15); { White } + WriteLn('and all others I forgot!'); + WriteLn; + TextColor(15+128); { White + Blink } + WriteLn('Go to the IRC irc.germany.net (Port 6667)! There you''ll find me.'); + WriteLn; + end; + TextColor(15); { White } +end. diff --git a/NUMB2TST.PAS b/NUMB2TST.PAS new file mode 100644 index 0000000..3e84ec7 --- /dev/null +++ b/NUMB2TST.PAS @@ -0,0 +1,25 @@ +uses numbers, Crt; + +var inu: longint; + hex: string; + y: integer; + +begin + repeat + WriteLn('==================='); + y := WhereY; + if (y=25) then y:=24; + Write('Enter number: '); + ReadLn(inu); + GotoXY(1,y); + ClrEol; + GotoXY(1,y); Write('d ',inu); + GotoXY(20,y); Write('h ',Dec2Hex(inu),' '); + GotoXY(40,y); WriteLn('b ',Dec2Bin(inu)); + until (inu=0); + { repeat + Write('Enter Hex-string: '); + ReadLn(hex); + WriteLn('Dec: ',Hex2Dec(hex)); + until (hex='q'); } +end. diff --git a/NUMB3TST.PAS b/NUMB3TST.PAS new file mode 100644 index 0000000..46e67ca --- /dev/null +++ b/NUMB3TST.PAS @@ -0,0 +1,16 @@ +uses numbers; + +var tmp: string; + tmp2: real; + +begin + + Write('Enter Floating Point Bin number: '); + ReadLn(tmp); + WriteLn('It''s: ',FPBin2Dec(tmp):0:10); +{ + Write('Enter FP decimal: '); + ReadLn(tmp2); + WriteLn('It''s: ',Dec2FPBin(tmp2)); +} +end. diff --git a/NUMBERS_.PAS b/NUMBERS_.PAS new file mode 100644 index 0000000..39e9e49 --- /dev/null +++ b/NUMBERS_.PAS @@ -0,0 +1,35 @@ +program Unit_Numbers_Test; + +uses Crt,Numbers; + +var n,z,fac: integer; + +begin + ClrScr; + WriteLn('-=+ Unit: Numbers - CheckOut +=-'); + WriteLn; + + WriteLn('Dec2Hex 254 Dec ==> Hex: ',Dec2Hex(254)); + + WriteLn('Hex2Dec F0 Hex ==> Dec: ',Hex2Dec('F0')); + + WriteLn('Bin2Dec 10101100 Bin ==> Dec: ',Bin2Dec('10101100')); + + Write('Shorten 525/365 Fraction : '); + Shorten(525,365,n,z,fac); + WriteLn(n,'/',z,' --- GGT:',fac); + + Write('AddFrac 6/8 + 4/7 Fraction : '); + AddFrac(6,8,4,7,n,z,false); + Write(n,'/',z,' ==> '); + AddFrac(6,8,4,7,n,z,true); + WriteLn(n,'/',z); + + Write('SubFrac 6/8 - 4/7 Fraction : '); + SubFrac(6,8,4,7,n,z,false); + Write(n,'/',z,' ==> '); + SubFrac(6,8,4,7,n,z,true); + WriteLn(n,'/',z); + + +end. \ No newline at end of file diff --git a/NUMB_TST.PAS b/NUMB_TST.PAS new file mode 100644 index 0000000..6e86868 --- /dev/null +++ b/NUMB_TST.PAS @@ -0,0 +1,13 @@ +uses Crt,Numbers; + +var zahl: longint; + +begin + ClrScr; + zahl := 1; + while zahl<>0 do begin + ReadLn(zahl); + GotoXY(1,WhereY-1); + WriteLn(zahl:0,': ',Dec2Bin(zahl)); + end; +end. diff --git a/PACMAN.PAS b/PACMAN.PAS new file mode 100644 index 0000000..27e6c96 --- /dev/null +++ b/PACMAN.PAS @@ -0,0 +1,99 @@ +program _PacMan_; + +uses Crt, Graph, BGIP; + +const rad=10; + pcol:byte=14; + +var xmax, ymax, xmed, ymed: word; + k: char; + angle,direct: word; + + +procedure GraphInit; +var grDriver, grMode: integer; +begin + grDriver := VGA; + grMode := VGAHi; + InitGraph(grDriver, grMode, BGIPath); + xmax := GetMaxX+1; { Bildschirmbreite in Pixeln } + ymax := GetMaxY+1; { Bildschirmhhe in Pixeln } + xmed := xmax DIV 2; + ymed := ymax DIV 2; +end; + +procedure GraphOutit; +begin + TextMode(CO80); + WriteLn('VMode : ',xmax,'x',ymax); + WriteLn('Center: ',xmed,'x',ymed); + WriteLn; + WriteLn('Programm beendet.'); +end; + +procedure PacMan(x,y,dir,a: word); +var tmp: string; + sa,ea: real; + x1,y1,x2,y2: word; + xm,ym: word; +begin + SetFillStyle(SolidFill,0); + SetColor(0); + Bar(xmed-rad,ymed-rad,xmed+rad,ymed+rad); + SetColor(pcol); + SetFillStyle(SolidFill,pcol); + Circle(x,y,rad); + FloodFill(x,y,pcol); + + SetColor(0); + SetFillStyle(SolidFill,0); + sa := (dir+a)/180*Pi; + ea := (dir-a)/180*Pi; + x1 := x+Trunc(Cos(sa)*(rad+1)); + y1 := y+Trunc(Sin(sa)*(rad+1)); + x2 := x+Trunc(Cos(ea)*(rad+1)); + y2 := y+Trunc(Sin(ea)*(rad+1)); + + MoveTo(x,y); + LineTo(x1,y1); + MoveTo(x,y); + LineTo(x2,y2); + + xm := (x1+x2+x) DIV 3; + ym := (y1+y2+y) DIV 3; + + SetColor(0); + SetFillStyle(SolidFill,0); + FloodFill(xm,ym,0); + + (* { Statistics following } + Bar(0,0,100,100); + SetColor(15); + Str(a:3, tmp); + OutTextXY(5,5,'Angle: '+tmp); + Str(dir:3, tmp); + OutTextXY(5,15,'Direc: '+tmp); *) +end; + +begin + GraphInit; + angle := 20; + direct := 270; + pcol := 15; + SetTextJustify(CenterText, CenterText); + OutTextXY(320,10,'Sieht aus wie eine ''Spalt N'', was?'); + repeat + PacMan(xmed,ymed,direct,angle); + k := ReadKey; + pcol := 14; + SetColor(15); + OutTextXY(320,20,'Ist aber der allbeliebte PACMAN!!'); + case k of + '+': if (angle<360) then Inc(angle,2) else angle:=0; + '-': if (angle>0) then Dec(angle,2) else angle:=359; + '*': if (direct<360) then Inc(direct,2) else direct:=0; + '/': if (direct>0) then Dec(direct,2) else direct:=359; + end; + until k=#27; + GraphOutit; +end. \ No newline at end of file diff --git a/PKURS/DREIEC01.PAS b/PKURS/DREIEC01.PAS new file mode 100644 index 0000000..10b48fc --- /dev/null +++ b/PKURS/DREIEC01.PAS @@ -0,0 +1,68 @@ +program Dreieck; + +uses Crt; +var X1,X2,X3,Y1,Y2,Y3: real; + Flaeche, LAB, LBC, LCA, SAB, SBC, SCA, MABx, MABy, MBCx, MBCy, MCAx, MCAy: real; + +function Mittelpunkt(P1,P2: real): real; +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(X1,X2,Y1,Y2: real): real; +begin + Laenge := Sqrt(Sqr(X2-X1)+Sqr(Y2-Y1)); +end; + + +function SHB(X,MX,Y,MY: real): real; +begin + SHB := Sqrt(Sqr(X-MX)+Sqr(Y-MY)); +end; + +begin + WriteLn('-= Dreiecksberechnung =-'); + WriteLn; + Write('Punkt A (x): '); ReadLn(X1); + Write('Punkt A (y): '); ReadLn(Y1); + Write('Punkt B (x): '); ReadLn(X2); + Write('Punkt B (y): '); ReadLn(Y2); + Write('Punkt C (x): '); ReadLn(X3); + Write('Punkt C (y): '); ReadLn(Y3); + + Flaeche := 0.5*Abs((Y1*(X3-X2)+Y2*(X1-X3)+Y3*(X2-X1))); + + WriteLn('####### Jetzt beginnt die Ausgabe #######'); + Write('Die Flche des 3ecks ist ',Flaeche:5:3); + + if Flaeche = 0 then WriteLn(' --- kein Dreieck! Punkte sind kollinear') else WriteLn; + + LAB := Sqrt(Sqr(X2-X1)+Sqr(Y2-Y1)); + LBC := Sqrt(Sqr(X3-X2)+Sqr(Y3-Y2)); + LCA := Sqrt(Sqr(X1-X3)+Sqr(Y1-Y3)); + WriteLn('Lnge Strecke AB: ',LAB:4:2); + WriteLn('Lnge Strecke BC: ',LBC:4:2); + WriteLn('Lnge Strecke CA: ',LCA:4:2); + + MABx := (X1+X2)/2; + MABy := (Y1+Y2)/2; + MBCx := (X2+X3)/2; + MBCy := (Y2+Y3)/2; + MCAx := (X3+X1)/2; + MCAy := (Y3+Y1)/2; + WriteLn('Mittelpunkt AB: ',MABx:3:1,'|',MABy:3:1); + WriteLn('Mittelpunkt BC: ',MBCx:3:1,'|',MBCy:3:1); + WriteLn('Mittelpunkt CA: ',MCAx:3:1,'|',MCAy:3:1); + + SAB := Sqrt(Sqr(X1-MBCx)+Sqr(Y1-MBCy)); + SBC := Sqrt(Sqr(X2-MCAx)+Sqr(Y2-MCAy)); + SCA := Sqrt(Sqr(X3-MABx)+Sqr(Y3-MABy)); + WriteLn('Seitenhalbierende AB: ',SAB:5:1); + WriteLn('Seitenhalbierende BC: ',SBC:5:1); + WriteLn('Seitenhalbierende CA: ',SCA:5:1); + + WriteLn; + WriteLn('Bitte eine Taste drcken...'); + + repeat until Keypressed; +end. \ No newline at end of file diff --git a/PKURS/DREIEC02.PAS b/PKURS/DREIEC02.PAS new file mode 100644 index 0000000..b491819 --- /dev/null +++ b/PKURS/DREIEC02.PAS @@ -0,0 +1,73 @@ +program Dreieck; + +uses Crt; +var X1,X2,X3,Y1,Y2,Y3: real; + Flaeche, LAB, LBC, LCA, SAB, SBC, SCA, MABx, MABy, MBCx, MBCy, MCAx, MCAy: real; + + +function Mittelpunkt(P1,P2: real): real; +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(X1,Y1,X2,Y2: real): real; +begin + Laenge := Sqrt(Sqr(X2-X1)+Sqr(Y2-Y1)); +end; + +function SHB(X,MX,Y,MY: real): real; +begin + SHB := Sqrt(Sqr(X-MX)+Sqr(Y-MY)); +end; + +function A(X1,Y1,X2,Y2,X3,Y3: real): real; +begin + A := 0.5*Abs((Y1*(X3-X2)+Y2*(X1-X3)+Y3*(X2-X1))); +end; + +begin + WriteLn('-= Dreiecksberechnung =-'); + WriteLn; + Write('Punkt A (x): '); ReadLn(X1); + Write('Punkt A (y): '); ReadLn(Y1); + Write('Punkt B (x): '); ReadLn(X2); + Write('Punkt B (y): '); ReadLn(Y2); + Write('Punkt C (x): '); ReadLn(X3); + Write('Punkt C (y): '); ReadLn(Y3); + + Flaeche := A(X1,Y1,X2,Y2,X3,Y3); + + WriteLn('####### Jetzt beginnt die Ausgabe #######'); + Write('Die Flche des 3ecks ist ',Flaeche:5:3); + + if Flaeche = 0 then WriteLn(' --- kein Dreieck! Punkte sind kollinear') else WriteLn; + + LAB := Laenge(X1,Y1,X2,Y2); + LBC := Laenge(X2,Y2,X3,Y3); + LCA := Laenge(X3,Y3,X1,Y1); + WriteLn('Lnge Strecke AB: ',LAB:4:2); + WriteLn('Lnge Strecke BC: ',LBC:4:2); + WriteLn('Lnge Strecke CA: ',LCA:4:2); + + MABx := Mittelpunkt(X1,X2); + MABy := Mittelpunkt(Y1,Y2); + MBCx := Mittelpunkt(X2,X3); + MBCy := Mittelpunkt(Y2,Y3); + MCAx := Mittelpunkt(X3,X1); + MCAy := Mittelpunkt(Y3,Y1); + WriteLn('Mittelpunkt AB: ',MABx:3:1,'|',MABy:3:1); + WriteLn('Mittelpunkt BC: ',MBCx:3:1,'|',MBCy:3:1); + WriteLn('Mittelpunkt CA: ',MCAx:3:1,'|',MCAy:3:1); + + SAB := SHB(X1,MBCx,Y1,MBCy); + SBC := SHB(X2,MCAx,Y2,MCAy); + SCA := SHB(X3,MABx,Y3,MABy); + WriteLn('Seitenhalbierende AB: ',SAB:5:1); + WriteLn('Seitenhalbierende BC: ',SBC:5:1); + WriteLn('Seitenhalbierende CA: ',SCA:5:1); + + WriteLn; + WriteLn('Bitte eine Taste drcken...'); + + repeat until Keypressed; +end. \ No newline at end of file diff --git a/PKURS/DREIEC03.PAS b/PKURS/DREIEC03.PAS new file mode 100644 index 0000000..8a99f5a --- /dev/null +++ b/PKURS/DREIEC03.PAS @@ -0,0 +1,98 @@ +program Dreieck; { Programmname } + +uses Crt; { Crt ist fr Textausgabe und anderes Zeugs } + +type Punkt=record { Der 1. Record fr die einzelnen Punkte } + x,y: real; { Record enthlt x und y } + end; + Mittelp=record { 2. Record fr Mittelpunkte } + x,y: real; { und nochmal x und y } + end; + +var P: array[0..2] of Punkt; { Arrays fr die Records } + M: array[0..2] of Mittelp; + Flaeche, LAB, LBC, LCA, SAB, SBC, SCA: real; { misc. Vars } + i: integer; { Das i fr FOR-Schleifen } + MPS: string; { Mittelpunktbeschreibung } + + +function Mittelpunkt(P1,P2: real): real; { Berechnet das arithmetische Mittel aus 2 Zahlen } +begin + Mittelpunkt := (P1+P2)/2; +end; + +function Laenge(X1,Y1,X2,Y2: real): real; { Berechnet Lnge 2er Koordinatenpaare } +begin + Laenge := Sqrt(Sqr(X2-X1)+Sqr(Y2-Y1)); +end; + +function SHB(X,MX,Y,MY: real): real; { Berechnet Seitenhalbierende aus 1 Punkt und 1 Mittelpunkt } +begin + SHB := Sqrt(Sqr(X-MX)+Sqr(Y-MY)); +end; + +function A(X1,Y1,X2,Y2,X3,Y3: real): real; { Berechnet Flche eines 3ecks beschrieben durch 3 KO-Paare } +begin + A := 0.5*Abs((Y1*(X3-X2)+Y2*(X1-X3)+Y3*(X2-X1))); +end; + +procedure GetPoint(rec: integer; ot: string); { Krallt sich die Eingaben } + begin + Write('Punkt '+ot+' (x): '); + ReadLn(P[rec].x); + Write('Punkt '+ot+' (y): '); + ReadLn(P[rec].y); + end; + +begin + ClrScr; { Erstmal Platz schaffen } + WriteLn('-= Dreiecksberechnung =-'); + WriteLn; + GetPoint(0, 'A'); { Krall Dir x und y von Punkt A } + GetPoint(1, 'B'); { und jetzt hol Dir B } + GetPoint(2, 'C'); { und C, aber mehr kriegst Du nicht aus mir heraus } + + Flaeche := A(P[0].x,P[0].y,P[1].x,P[1].y,P[2].x,P[2].y); + + WriteLn('####### Jetzt beginnt die Ausgabe #######'); + Write('Die Flche des 3ecks ist ',Flaeche:5:3); + + if Flaeche = 0 then { Flche = 0? Dann kein Dreieck! } + WriteLn(' --- kein Dreieck! Punkte sind kollinear') + else + WriteLn; + + LAB := Laenge(P[0].x,P[0].y,P[1].x,P[1].y); + LBC := Laenge(P[1].x,P[1].y,P[2].x,P[2].y); + LCA := Laenge(P[2].x,P[2].y,P[0].x,P[0].y); + WriteLn('Lnge Strecke AB: ',LAB:4:2); + WriteLn('Lnge Strecke BC: ',LBC:4:2); + WriteLn('Lnge Strecke CA: ',LCA:4:2); + + for i:=0 to 1 do begin + M[i].x := Mittelpunkt(P[i].x,P[i+1].x); + M[i].y := Mittelpunkt(P[i].y,P[i+1].x); + end; + M[2].x := Mittelpunkt(P[2].x,P[0].x); + M[2].y := Mittelpunkt(P[2].y,P[0].y); + + for i:=0 to 2 do begin + if i=0 then MPS := 'AB'; + if i=1 then MPS := 'BC'; + if i=2 then MPS := 'CA'; + WriteLn('Mittelpunkt '+MPS+': ',M[i].x:3:1,'|',M[i].y:3:1); + end; + + SAB := SHB(P[0].x,M[1].x,P[0].y,M[1].y); + SBC := SHB(P[1].x,M[2].x,P[1].y,M[2].y); + SCA := SHB(P[2].x,M[0].x,P[2].y,M[0].y); + + WriteLn('Seitenhalbierende AB: ',SAB:5:1); + WriteLn('Seitenhalbierende BC: ',SBC:5:1); + WriteLn('Seitenhalbierende CA: ',SCA:5:1); + + WriteLn; + WriteLn('Bitte eine Taste drcken...'); + + ReadKey; +end. \ No newline at end of file diff --git a/PKURS/TEST01.PAS b/PKURS/TEST01.PAS new file mode 100644 index 0000000..553f1a1 --- /dev/null +++ b/PKURS/TEST01.PAS @@ -0,0 +1,5 @@ +program Test; +uses Crt; +begin + ReadLn; +end. \ No newline at end of file diff --git a/PKURS/TEST02.PAS b/PKURS/TEST02.PAS new file mode 100644 index 0000000..0214f12 --- /dev/null +++ b/PKURS/TEST02.PAS @@ -0,0 +1,9 @@ +program Test; + +uses Crt; +var t:string; + +begin + ReadLn(t); + WriteLn('Ausgabe: '+t); +end. \ No newline at end of file diff --git a/PPDIR/PPDIR.PAS b/PPDIR/PPDIR.PAS new file mode 100644 index 0000000..c301167 --- /dev/null +++ b/PPDIR/PPDIR.PAS @@ -0,0 +1,236 @@ +program PushPopDir; + +{$M 8192,0,0} + +uses Dos; + +const TmpFile='dirmem.$$$'; + +var where: string; + what: string; + debug: boolean; + +function UC(str: string): string; +var i: integer; + tmp: string; +begin + tmp := ''; + for i:=1 to Length(str) do begin + tmp := tmp + UpCase(str[i]); + end; + UC := tmp; +end; + +function Contains(str, what: string): boolean; +var i,sl: integer; +begin + sl := Length(what); + what := UC(what); + for i:=Length(str) downto 1 do begin + if UC(Copy(str,i,sl))=what then begin + if debug then WriteLn(' Contains result: ''',what,''' in ParamStr(0): true'); + Contains := true; + Exit; + end; + end; + if debug then WriteLn(' Contains result: ''',what,''' in ParamStr(0): false'); + Contains := false; +end; + +function GetTempFile: string; +var td: string; +begin + td := GetEnv('TEMP'); + if td='' then td := GetEnv('TMP'); + if td='' then td := 'C:\'; + if Copy(td,Length(td)-1,1)='\' then td := td+TmpFile else td := td+'\'+TmpFile; + if debug then WriteLn(' GetTempFile result: ',td); + GetTempFile := td; +end; + +procedure PopDir; +var tmp: text; + dir: string; +begin + dir := ''; + if debug then WriteLn(' Assigning GetTempFile to tmp'); + Assign(tmp,GetTempFile); + {$I-} + if debug then WriteLn(' Resetting tmp'); + Reset(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('No directory in memory!'); + Halt; + end; + {$I+} + if debug then WriteLn(' Read pushed dir, if NOT Eof(tmp)'); + if NOT Eof(tmp) then ReadLn(tmp,dir); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' Erasing tmp'); + Erase(tmp); + if debug then WriteLn(' Result check'); + if dir='' then begin + WriteLn('No directory in memory! [2]'); + Halt; + end; + if debug then WriteLn(' Changing to directory ''',dir,''); + ChDir(dir); + WriteLn('Changed directory to ',dir,'.'); + Halt; +end; + +procedure PushDir; +var tmp: text; +begin + if debug then WriteLn(' Assigning GetTempFile to tmp'); + Assign(tmp,GetTempFile); + {$I-} + if debug then WriteLn(' Rewriting tmp'); + Rewrite(tmp); + if debug then WriteLn(' Writing ''',where,''' to tmp'); + WriteLn(tmp,where); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('There was an error!'); + Halt; + end; + {$I+} + WriteLn('Pushed current directory into memory.'); + Halt; +end; + +procedure SwapDir; +var tmp: text; + dir: string; +begin + dir := ''; + if debug then WriteLn(' Assigning GetTempFile to tmp'); + Assign(tmp,GetTempFile); + {$I-} + if debug then WriteLn(' Resetting tmp'); + Reset(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('No directory in memory!'); + Halt; + end; + {$I+} + if debug then WriteLn(' Read pushed dir, if NOT Eof(tmp)'); + if NOT Eof(tmp) then ReadLn(tmp,dir); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' Erasing tmp'); + Erase(tmp); + if debug then WriteLn(' Result check'); + if dir='' then begin + WriteLn('No directory in memory! [2]'); + Halt; + end; + if debug then WriteLn(' Changing to directory ''',dir,''); + ChDir(dir); + {$I-} + if debug then WriteLn(' Rewriting tmp'); + Rewrite(tmp); + if debug then WriteLn(' Writing ''',where,''' to tmp'); + WriteLn(tmp,where); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('There was an error!'); + Halt; + end; + {$I+} + WriteLn('Swapped directory with those in memory.'); +end; + +procedure ShowDir; +var tmp: text; + dir: string; +begin + dir := ''; + if debug then WriteLn(' Assigning GetTempFile to tmp'); + Assign(tmp,GetTempFile); + {$I-} + if debug then WriteLn(' Resetting tmp'); + Reset(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('No directory in memory!'); + Halt; + end; + if debug then WriteLn(' Read pushed dir, if NOT Eof(tmp)'); + if NOT Eof(tmp) then ReadLn(tmp,dir); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if dir='' then begin + if debug then WriteLn(' No valid dir in mem ==> Erasing tmp'); + Erase(tmp); + WriteLn('No directory in memory! [2]'); + Halt; + end; + WriteLn('Pushed directory: ',dir); + Halt; +end; + +procedure CreatePackage; +var tmp: text; +begin + if debug then WriteLn(' Assigning $$_cp_$$.bat to tmp'); + Assign(tmp,'$$_cp_$$.bat'); + {$I-} + if debug then WriteLn(' Rewriting tmp'); + Rewrite(tmp); + if debug then WriteLn(' Writing commands to tmp'); + WriteLn(tmp,'@echo off'); + WriteLn(tmp,'ECHO Building package of %1 ...'); + WriteLn(tmp,'DEL popd.exe >NUL'); + WriteLn(tmp,'DEL pushd.exe >NUL'); + WriteLn(tmp,'DEL swapd.exe >NUL'); + WriteLn(tmp,'COPY %1 popd.exe >NUL'); + WriteLn(tmp,'COPY %1 pushd.exe >NUL'); + WriteLn(tmp,'COPY %1 swapd.exe >NUL'); + WriteLn(tmp,'DEL %1 >NUL'); + if debug then WriteLn(' Closing tmp'); + Close(tmp); + if debug then WriteLn(' IOResult check'); + if IOResult<>0 then begin + WriteLn('There was an error! Could not create package. Make sure, that there is no'); + WriteLn('file named $$_cp_$$.bat in this directory and try again.'); + Halt; + end; + {$I+} + if debug then WriteLn(' Swapping Vectors out'); + SwapVectors; + if debug then WriteLn(' Execing anti-packager'); + Exec(GetEnv('COMSPEC'),'/C $$_cp_$$.bat '+ParamStr(0)); + if debug then WriteLn(' Swapping Vectors in'); + SwapVectors; + if debug then WriteLn(' Checking DOSError'); + if DOSError<>0 then begin + WriteLn('There was an error during the building of the package. Make sure your environ-'); + WriteLn('ment variable COMSPEC points to your command-interpreter.'); + Halt; + end; + if debug then WriteLn(' Erasing tmp'); + Erase(tmp); + WriteLn; + WriteLn('Now you''re ready to use PushPopDir. Read the PPDIR.TXT for further instructions.'); + Halt; +end; + +begin + debug := false; + GetDir(0,where); + what := ParamStr(0); + if ((ParamStr(1)<>'') AND (ParamStr(1)='debug')) then debug:=true; + if (((NOT debug) AND (ParamCount>0)) OR ((debug) AND (ParamCount>1))) then ShowDir; + if Contains(what,'popd') then PopDir; + if Contains(what,'pushd') then PushDir; + if Contains(what,'swapd') then SwapDir; + CreatePackage; +end. \ No newline at end of file diff --git a/PPDIR/PPDIR.TXT b/PPDIR/PPDIR.TXT new file mode 100644 index 0000000..b653506 --- /dev/null +++ b/PPDIR/PPDIR.TXT @@ -0,0 +1,31 @@ +PushPopDir - an add-on for the command line written by Markus Birth +------------------------------------------------------------------------------- +(c)1998 by Markus Birth + +To install PPDir, just copy the executable PPDIR.EXE to a directory which is +in your path and run it there. It will extract itself into 3 parts: + PUSHD.EXE + POPD.EXE +and SWAPD.EXE + +PUSHD is used to save the current directory into the temporary buffer. The + buffer-file is stored in the TEMP-directory so that it survives + system reboots. + +POPD is used to change to the directory which is stored in the buffer. The + buffer will be deleted after the chdir succeeds. + +SWAPD will save the current directory into the buffer and then switch to + the directory which was in the buffer before. If you run SWAPD again + you will have the same state as before the first run. + + +To see what's in the buffer, just type any parameter after any command. If you +use 'debug' as parameter (without quotation marks) you will get into the +debug-mode which will show things happening during the performance of the +commands. + + +Now have your phun! +------------------------------------------------------------------------------- +Bug report to M.Birth@ThePentagon.com diff --git a/PZIP.PAS b/PZIP.PAS new file mode 100644 index 0000000..e12c30e --- /dev/null +++ b/PZIP.PAS @@ -0,0 +1,45 @@ +program pZipCompressor; + +uses Crt, Dos; + +var infile, outfile: file; + insize, outsize: longint; + infname, outfname: string; + +procedure Init; +begin + infname := ParamStr(1); + Assign(infile,infname); + Reset(infile); + insize := FileSize(infile); + Close(infile); +end; + +procedure ExecPacker; +begin + SwapVectors; + Exec(GetEnv('COMSPEC'),'/C pack_.bat '+infname); + SwapVectors; +end; + +procedure After; +begin + Assign(outfile,'!'+infname); + Reset(outfile); + outsize := FileSize(outfile); + Close(outfile); +end; + +procedure Out; +begin + WriteLn('Statistics'); + WriteLn('Original size: ',insize,' Bytes'); + WriteLn('Packed size: ',outsize,' Bytes'); +end; + +begin + Init; + ExecPacker; + After; + Out; +end. \ No newline at end of file diff --git a/RANDTEST.PAS b/RANDTEST.PAS new file mode 100644 index 0000000..6b237e4 --- /dev/null +++ b/RANDTEST.PAS @@ -0,0 +1,72 @@ +program Randomize_TEST; + +uses Crt; + +const RSInit=255; + +var i,j: integer; + bla: string; + +function AddOrd(var x: char; wert: byte): char; +var y: integer; +begin + y := Ord(x); + y := y + wert; + if y>255 then y:=y-255; + AddOrd := Chr(y); +end; + +function SubOrd(var x: char; wert: byte): char; +var y: integer; +begin + y := Ord(x); + y := y - wert; + if y<0 then y:=y+255; + SubOrd := Chr(y); +end; + + +procedure Code(var x: string); +var i: integer; + fin: string; +begin + RandSeed:=RSInit; + fin := ''; + for i:=1 to Length(x) do begin + fin := fin + AddOrd(x[i],Random(256)); + end; + x := fin; +end; + +procedure DeCode(var x: string); +var i: integer; + fin: string; +begin + RandSeed:=RSInit; + fin := ''; + for i:=1 to Length(x) do begin + fin := fin + SubOrd(x[i],Random(256)); + end; + x := fin; +end; + + +begin + ClrScr; + RandSeed := RSInit; + for j:=0 to 7 do begin + { RandSeed := 200; { Randomize weist RandSeed einen Wert abhngig } + for i:=1 to 15 do begin { von der Systemzeit zu. Durch manuelle Zuweisung erhlt } + GotoXY(j*10+1,i); { man IMMER die gleichen "Zufallszahlen". Dies ist gut } + WriteLn(Random(256)); { fr z.B. Verschlsselungsverfahren. } + end; + end; + Write('Gib Deine letzten Worte ein: '); + ReadLn(bla); + WriteLn; + WriteLn('Original: ',bla); + Code(bla); + WriteLn('Codiert : ',bla); + DeCode(bla); + WriteLn('Decoded : ',bla); +end. diff --git a/RANGEBOT.OLD b/RANGEBOT.OLD new file mode 100644 index 0000000..a1213aa --- /dev/null +++ b/RANGEBOT.OLD @@ -0,0 +1,204 @@ +{$Q-} {$R-} + +{ +This is the story of a nice little robot called Ranger, who has a nice +little malfunction. The malfunction makes him moving randomly around. Because +of his malfunction he looses parts - and he must not go on them because he +would stumble and fall down (and die). He's allowed to make a max. of ssx +steps right/left and ssy steps up/down. There is a force field from 1 to usex +in x-dir and from 1 to usey in y-dir. He must not go through it (because he +will get toasted). + + Good luck, Ranger! +} + +program Ranger; { Ranger joined the game } + +uses Crt,Dos; { Dos only needed for time stats } + +const ssx=2; { maximum steps in x-dir } + ssy=2; { maximum steps in y-dir } + inact=8; { color for inactive sign } + inacts: string = #01; { string for inactive } + act=14; { color for active sign } + acts: string = #02; { string for bot } + bg=0; { bg color } + del=100; { delay between jumps } + usex=80; { how many fields to use x } + usey=49; { how many fields to use y } + +var x,y: byte; { Target coords } + ox,oy: byte; { old Target coords } + sx,sy: shortint; { how many steps } + dsx,dsy: byte; { double sx/sy 'cause he can go left AND right } + GSCt: integer; { Counter for calls of GetStep } + pGSCt: integer; { Peak of GSCt } + ABORT: boolean; { if Ranger can't move then restart } + deads: integer; { mistakes(deads) of Ranger } + sh,sm,ss,shn: word; { Prog-Starttime } + th,tm,ts,thn: word; { Ranger-Starttime } + ch,cm,cs,chn: word; { Current time } + uh,um,us,uhn: shortint; { Prog UpTime } + lh,lm,ls,lhn: shortint; { (current) Ranger's UpTime } + ph,pm,ps: shortint; { Peak of lh,lm,ls } + a: array[0..usex, 0..usey] of boolean; { used to control whether a field has already been used } + +procedure Initialize; { Ranger - get ready!! } +begin + Randomize; { some new Random-values? } + TextMode(3+256); { well, let's switch to 80x50 } + TextBackground(bg); { choose color bg - it's nicer } + ClrScr; { Put all those shit from my screen! } + GetTime(sh,sm,ss,shn); { Program: What time is it?? - Computer: well, let me look at my clock } + GetTime(th,tm,ts,thn); { Ranger: What time is it?? - Computer: don't get on my nerves } + ox := usex div 2; { well, well, well.... } + oy := usey div 2; { .... let's start in the middle } + dsx := ssx*2+1; { how many steps? .... } + dsy := ssy*2+1; { .... hmmm.... what do you think? } +end; + +procedure EndSeq; { Everything has an end! } +begin + TextMode(3); { Back to DOS-Mode } + TextBackground(0); { this shitty black } + TextColor(7); { combinated with those stupid gray } + ClrScr; { just real fuck! } +end; + +function LZ(wo: real; c: integer): String; { Leading Zero maker } +var st: String; + i: integer; +begin + Str(wo:0:0,st); + for i:=1 to c-Length(st) do begin + st := '0' + st; + end; + LZ := st; +end; + +procedure WriteStatus; { Calculates and writes the Stats } +begin + GotoXY(1,50); + GetTime(ch,cm,cs,chn); + uh := ch-sh; + um := cm-sm; + us := cs-ss; + if um<0 then begin + um := um+60; + uh := uh-1; + end; + if us<0 then begin + us := us+60; + um := um-1; + end; + + lh := ch-th; + lm := cm-tm; + ls := cs-ts; + if lm<0 then begin + lm := lm+60; + lh := lh-1; + end; + if ls<0 then begin + ls := ls+60; + lm := lm-1; + end; + TextColor(8); + Write('R:',LZ(GSCt,3),'-P:',LZ(pGSCt,3),' - '); + Write('Kills:',LZ(deads,4),' - '); + Write('CurBot:',LZ(lh,2),':',LZ(lm,2),'.',LZ(ls,2),' - '); + Write('Oldest:'); + if ph+pm+ps<>0 then Write(LZ(ph,2),':',LZ(pm,2),'.',LZ(ps,2),' - ') else Write('--:--.-- - '); + Write('UpTime: ',LZ(uh,2),':',LZ(um,2),'.',LZ(us,2)); +end; + +procedure CalcNewPos; { Where do you want to go today? } +begin + if ox+sx>usex+1-Length(acts) then x:=usex+1-Length(acts); + if ox+sx<1 then x:=1; + if ((ox+sx>0) AND (ox+sxusey-1 then y:=usey-1; + if oy+sy<1 then y:=1; + if ((oy+sy>0) AND (oy+sy199 then begin { Well, I give you 199 tries per step } + ABORT := True; { to make the Randomizer find some } + GSCt := 0; { GOOD values to move to. } + Exit; + end; + CalcNewPos; { Let's see where we would land... } + Delay(del); { Wait a sec....not so fast } + if a[x,y] then begin + if oy>1 then GotoXY(ox,oy-1) else GotoXY(ox,oy+1); + TextColor(act); + if oy>1 then Write('?') else Write(''); + GetStep; { Already gone there? } + end; + if oy>1 then GotoXY(ox,oy-1) else GotoXY(ox,oy+1); + TextColor(inact); + if oy>1 then begin + if a[ox,oy-1] then Write(inacts) else Write(' '); + end else begin + if a[ox,oy+1] then Write(inacts) else Write(' '); + end; + if GSCt>pGSCt then pGSCt:=GSCt; { a new HIGHSCORE? } + GSCt := 0; +end; + +procedure WriteNewPos; { Brings Ranger to the new position } +var c: integer; +begin + GotoXY(Trunc(ox),Trunc(oy)); + TextColor(inact); + for c:=1 to Length(acts) div Length(inacts) do Write(inacts); { write even chars of inactive over active } + Write(Copy(inacts,1,Length(acts) mod Length(inacts))); { if there's something missing, write another char } + GotoXY(x,y); + a[x,y]:=true; + TextColor(act); + Write(acts); + ox := x; + oy := y; +end; + +procedure ReRun; { Died? Well, you have unlimited credits! hehe } +begin + for x:=1 to usex do begin + for y:=1 to usey do begin + a[x,y]:=false; + end; + end; + ClrScr; + ox := usex div 2; + oy := usey div 2; + dsx := ssx*2+1; + dsy := ssy*2+1; + ABORT := false; { ABORT complete - we're here. that's important } + GetTime(th,tm,ts,thn); { Ranger: What time is it? } + Inc(Deads); { Uh oh.... } + if lh*3600+lm*60+ls>ph*3600+pm*60+ps then begin { a new HIGHSCORE?? } + ph := lh; + pm := lm; + ps := ls; + end; +end; + +begin + Initialize; { Let's go .... } + repeat { Yeah, unlimited credits... } + GetStep; { Gimme some numbers... } + CalcNewPos; { Where would we land? } + WriteNewPos; { Okay, let's go there } + Randomize; { Hmm...let's get new numbers } + if ABORT then ReRun; { No more space to move to? } + until keypressed; { Hey, wanna quit? } + EndSeq; { Okay, let's restore the old shit } +end. { Bye! } \ No newline at end of file diff --git a/RANGEBOT.PAS b/RANGEBOT.PAS new file mode 100644 index 0000000..3f25de0 --- /dev/null +++ b/RANGEBOT.PAS @@ -0,0 +1,210 @@ +{$Q-} {$R-} + +{ +This is the story of a nice little robot called Ranger, who has a nice +little malfunction. The malfunction makes him moving randomly around. Because +of his malfunction he looses parts - and he must not go on them because he +would stumble and fall down (and die). He's allowed to make a max. of ssx +steps right/left and ssy steps up/down. There is a force field from 1 to usex +in x-dir and from 1 to usey in y-dir. He must not go through it (because he +will get toasted). + + Good luck, Ranger! +} + +program Ranger; { Ranger joined the game } + +uses Crt,Dos; { Dos only needed for time stats } + +const ssx=2; { maximum steps in x-dir } + ssy=2; { maximum steps in y-dir } + inact=8; { color for inactive sign } + inacts: string = #01; { string for inactive } + act=14; { color for active sign } + acts: string = #02; { string for bot } + bg=0; { bg color } + del=10; { delay between jumps } + usex=80; { how many fields to use x } + usey=49; { how many fields to use y } + +var x,y: byte; { Target coords } + ox,oy: byte; { old Target coords } + sx,sy: shortint; { how many steps } + dsx,dsy: byte; { double sx/sy 'cause he can go left AND right } + GSCt: integer; { Counter for calls of GetStep } + pGSCt: integer; { Peak of GSCt } + ABORT: boolean; { if Ranger can't move then restart } + deads: integer; { mistakes(deads) of Ranger } + rc: integer; + sh,sm,ss,shn: word; { Prog-Starttime } + th,tm,ts,thn: word; { Ranger-Starttime } + ch,cm,cs,chn: word; { Current time } + uh,um,us,uhn: shortint; { Prog UpTime } + lh,lm,ls,lhn: shortint; { (current) Ranger's UpTime } + ph,pm,ps: shortint; { Peak of lh,lm,ls } + a: array[0..usex, 0..usey] of boolean; { used to control whether a field has already been used } + +procedure Initialize; { Ranger - get ready!! } +begin + Randomize; { some new Random-values? } + rc := 0; + TextMode(3+256); { well, let's switch to 80x50 } + TextBackground(bg); { choose color bg - it's nicer } + ClrScr; { Put all those shit from my screen! } + GetTime(sh,sm,ss,shn); { Program: What time is it?? - Computer: well, let me look at my clock } + GetTime(th,tm,ts,thn); { Ranger: What time is it?? - Computer: don't get on my nerves } + ox := usex div 2; { well, well, well.... } + oy := usey div 2; { .... let's start in the middle } + dsx := ssx*2+1; { how many steps? .... } + dsy := ssy*2+1; { .... hmmm.... what do you think? } +end; + +procedure EndSeq; { Everything has an end! } +begin + TextMode(3); { Back to DOS-Mode } + TextBackground(0); { this shitty black } + TextColor(7); { combinated with those stupid gray } + ClrScr; { just real fuck! } +end; + +function LZ(wo: real; c: integer): String; { Leading Zero maker } +var st: String; + i: integer; +begin + Str(wo:0:0,st); + for i:=1 to c-Length(st) do begin + st := '0' + st; + end; + LZ := st; +end; + +procedure WriteStatus; { Calculates and writes the Stats } +begin + GotoXY(1,50); + GetTime(ch,cm,cs,chn); + uh := ch-sh; + um := cm-sm; + us := cs-ss; + if um<0 then begin + um := um+60; + uh := uh-1; + end; + if us<0 then begin + us := us+60; + um := um-1; + end; + + lh := ch-th; + lm := cm-tm; + ls := cs-ts; + if lm<0 then begin + lm := lm+60; + lh := lh-1; + end; + if ls<0 then begin + ls := ls+60; + lm := lm-1; + end; + TextColor(8); + Write('R:',LZ(GSCt,3),'-P:',LZ(pGSCt,3),' - '); + Write('Kills:',LZ(deads,4),' - '); + Write('CurBot:',LZ(lh,2),':',LZ(lm,2),'.',LZ(ls,2),' - '); + Write('Oldest:'); + if ph+pm+ps<>0 then Write(LZ(ph,2),':',LZ(pm,2),'.',LZ(ps,2),' - ') else Write('--:--.-- - '); + Write('UpTime: ',LZ(uh,2),':',LZ(um,2),'.',LZ(us,2)); +end; + +procedure CalcNewPos; { Where do you want to go today? } +begin + if ox+sx>usex+1-Length(acts) then x:=usex+1-Length(acts); + if ox+sx<1 then x:=1; + if ((ox+sx>0) AND (ox+sxusey-1 then y:=usey-1; + if oy+sy<1 then y:=1; + if ((oy+sy>0) AND (oy+sy199 then begin { Well, I give you 199 tries per step } + ABORT := True; { to make the Randomizer find some } + GSCt := 0; { GOOD values to move to. } + Exit; + end; + CalcNewPos; { Let's see where we would land... } + Delay(del); { Wait a sec....not so fast } + if a[x,y] then begin + if oy>1 then GotoXY(ox,oy-1) else GotoXY(ox,oy+1); + TextColor(act); + if oy>1 then Write('?') else Write(''); + GetStep; { Already gone there? } + end; + if oy>1 then GotoXY(ox,oy-1) else GotoXY(ox,oy+1); + TextColor(inact); + if oy>1 then begin + if a[ox,oy-1] then Write(inacts) else Write(' '); + end else begin + if a[ox,oy+1] then Write(inacts) else Write(' '); + end; + if GSCt>pGSCt then pGSCt:=GSCt; { a new HIGHSCORE? } + GSCt := 0; +end; + +procedure WriteNewPos; { Brings Ranger to the new position } +var c: integer; +begin + GotoXY(Trunc(ox),Trunc(oy)); + TextColor(inact); + for c:=1 to Length(acts) div Length(inacts) do Write(inacts); { write even chars of inactive over active } + Write(Copy(inacts,1,Length(acts) mod Length(inacts))); { if there's something missing, write another char } + GotoXY(x,y); + a[x,y]:=true; + TextColor(act); + Write(acts); + ox := x; + oy := y; +end; + +procedure ReRun; { Died? Well, you have unlimited credits! hehe } +begin + for x:=1 to usex do begin + for y:=1 to usey do begin + a[x,y]:=false; + end; + end; + ClrScr; + ox := usex div 2; + oy := usey div 2; + dsx := ssx*2+1; + dsy := ssy*2+1; + ABORT := false; { ABORT complete - we're here. that's important } + GetTime(th,tm,ts,thn); { Ranger: What time is it? } + Inc(Deads); { Uh oh.... } + if lh*3600+lm*60+ls>ph*3600+pm*60+ps then begin { a new HIGHSCORE?? } + ph := lh; + pm := lm; + ps := ls; + end; +end; + +begin + Initialize; { Let's go .... } + repeat { Yeah, unlimited credits... } + GetStep; { Gimme some numbers... } + CalcNewPos; { Where would we land? } + WriteNewPos; { Okay, let's go there } + if (rc>500) then begin + Randomize; { Hmm...let's get new numbers } + rc := 0; + end; + if ABORT then ReRun; { No more space to move to? } + until keypressed; { Hey, wanna quit? } + EndSeq; { Okay, let's restore the old shit } +end. { Bye! } \ No newline at end of file diff --git a/REKURSIV.PAS b/REKURSIV.PAS new file mode 100644 index 0000000..0e9c7bf --- /dev/null +++ b/REKURSIV.PAS @@ -0,0 +1,16 @@ +program Rekursivitaet; +uses Crt; + +procedure Zeichen; +var ch: char; +begin + ch := ReadKey; + Write(ch); + if ch<>'-' then Zeichen; + Write(ch); +end; + +begin + ClrScr; + Zeichen; +end. \ No newline at end of file diff --git a/ReverZ/INSTALL2.PAS b/ReverZ/INSTALL2.PAS new file mode 100644 index 0000000..82d087c --- /dev/null +++ b/ReverZ/INSTALL2.PAS @@ -0,0 +1,99 @@ +{$M $4000,0,0} +program ReverZ2_CD_installer; + +uses Crt,DOS; + +var cddrv,tmpdir,tmpdirr,tmp: string; + f: text; + i: integer; + +procedure Abort(msg: string); +begin + WriteLn('Failed.'); + WriteLn; + WriteLn(msg); + WriteLn('Press any key to exit.'); + ReadKey; + Halt; +end; + +begin + WriteLn('Welcome to the ReverZ2-CD installer with the D-Info ''99 autumn database'); + WriteLn; + Write('Checking TEMP-directory....'); + tmpdir:=GetEnv('TEMP'); + if tmpdir='' then Abort('Set your TEMP-envvar!'); + WriteLn('done. TEMP-dir is ',tmpdir); + Write('Checking write access to TEMP....'); + Assign(f,tmpdir+'\reverz2.$$$'); + {$I-} + Rewrite(f); + if IOResult<>0 then Abort('Get write access to TEMP-dir or change envvar!'); + {$I+} + WriteLn(f,'ReverZ write test'); + Close(f); + {$I-} + Reset(f); + if IOResult<>0 then Abort('Write possible, read not - DO SOMETHING!'); + {$I+} + ReadLn(f,tmp); + Close(f); + if tmp<>'ReverZ write test' then Abort('Read data not equal to written!'); + {$I-} + Erase(f); + if IOResult<>0 then begin + WriteLn('Failed.'); + WriteLn; + WriteLn(tmpdir,'\reverz2.$$$ could not be deleted. Delete manually!'); + WriteLn('Press any key to continue.'); + ReadKey; + end else WriteLn('done.'); + {$I+} + Write('Searching install drive letter....'); + tmp := ParamStr(0); + cddrv := tmp[1]; + WriteLn('done. Install drive is ',cddrv,':'); + Write('Creating Registry-entries....'); + Assign(f,tmpdir+'\reverz2.reg'); + {$I-} + Rewrite(f); + if IOResult<>0 then Abort('Error while writing reverz2.reg to '+tmpdir+'!'); + {$I+} + tmpdirr := ''; + for i:=1 to Length(tmpdir) do + if tmpdir[i]='\' then tmpdirr:=tmpdirr+'\\' else tmpdirr:=tmpdirr+tmpdir[i]; + WriteLn(f,'REGEDIT4'); + WriteLn(f,''); + WriteLn(f,'[HKEY_CURRENT_USER\Software\Topware\D-Info ''99_1\ReverZ]'); + WriteLn(f,'"IndexLong"="',cddrv,':\\DATA\\rev_long.idx"'); + WriteLn(f,'"IndexShort"="',cddrv,':\\DATA\\rev_shor.idx"'); + WriteLn(f,'"CDPath"="',cddrv,':\\DATA"'); + WriteLn(f,'"HDPath"="',cddrv,':\\DATA"'); + WriteLn(f,'"TempPath"="',tmpdirr,'"'); + WriteLn(f,'"NotFound"=dword:00000000'); + WriteLn(f,'"Folge"=dword:00000001'); + WriteLn(f,'"F4Start"=dword:00000001'); + WriteLn(f,'"IgnoreCDWarnung"=dword:00000000'); + WriteLn(f,'"Index"=dword:00000002'); + WriteLn(f,''); + Close(f); + WriteLn('done.'); + Write('Importing Registry entries....'); + SwapVectors; + Exec(GetEnv('COMSPEC'),'/C START /w regedit /s '+tmpdir+'\reverz2.reg'); + SwapVectors; + WriteLn('hopefully done.'); + Write('Deleting reverz2.reg....'); + {$I-} + Erase(f); + if IOResult<>0 then begin + WriteLn('Failed.'); + WriteLn; + WriteLn(tmpdir,'\reverz2.reg could not be deleted. Delete manually!'); + WriteLn('Press any key to continue.'); + ReadKey; + end else WriteLn('done.'); + {$I+} + WriteLn; + WriteLn('All done.'); +end. diff --git a/ReverZ/autorun.inf b/ReverZ/autorun.inf new file mode 100644 index 0000000..c0c06aa --- /dev/null +++ b/ReverZ/autorun.inf @@ -0,0 +1,3 @@ +[autorun] +Icon=ReverZ.exe,0 +Open=INSTALL.PIF diff --git a/ReverZ/install.pas b/ReverZ/install.pas new file mode 100644 index 0000000..7f3d104 --- /dev/null +++ b/ReverZ/install.pas @@ -0,0 +1,100 @@ +{$M $4000,0,0} +program ReverZ_CD_installer; + +uses Crt,DOS; + +var cddrv,tmpdir,tmpdirr,tmp: string; + f: text; + i: integer; + +procedure Abort(msg: string); +begin + WriteLn('Failed.'); + WriteLn; + WriteLn(msg); + WriteLn('Press any key to exit.'); + ReadKey; + Halt; +end; + +begin + WriteLn('Welcome to the ReverZ-CD installer with the D-Info ''99 database'); + WriteLn; + Write('Checking TEMP-directory....'); + tmpdir:=GetEnv('TEMP'); + if tmpdir='' then Abort('Set your TEMP-envvar!'); + WriteLn('done. TEMP-dir is ',tmpdir); + Write('Checking write access to TEMP....'); + Assign(f,tmpdir+'\reverz.$$$'); + {$I-} + Rewrite(f); + if IOResult<>0 then Abort('Get write access to TEMP-dir or change envvar!'); + {$I+} + WriteLn(f,'ReverZ write test'); + Close(f); + {$I-} + Reset(f); + if IOResult<>0 then Abort('Write possible, read not - DO SOMETHING!'); + {$I+} + ReadLn(f,tmp); + Close(f); + if tmp<>'ReverZ write test' then Abort('Read data not equal to written!'); + {$I-} + Erase(f); + if IOResult<>0 then begin + WriteLn('Failed.'); + WriteLn; + WriteLn(tmpdir,'\reverz.$$$ could not be deleted. Delete manually!'); + WriteLn('Press any key to continue.'); + ReadKey; + end else WriteLn('done.'); + {$I+} + Write('Searching install drive letter....'); + tmp := ParamStr(0); + cddrv := tmp[1]; + WriteLn('done. Install drive is ',cddrv,':'); + Write('Creating Registry-entries....'); + Assign(f,tmpdir+'\reverz.reg'); + {$I-} + Rewrite(f); + if IOResult<>0 then Abort('Error while writing reverz.reg to '+tmpdir+'!'); + {$I+} + tmpdirr := ''; + for i:=1 to Length(tmpdir) do + if tmpdir[i]='\' then tmpdirr:=tmpdirr+'\\' else tmpdirr:=tmpdirr+tmpdir[i]; + WriteLn(f,'REGEDIT4'); + WriteLn(f,''); + WriteLn(f,'[HKEY_CURRENT_USER\Software\Topware\D-Info ''99\ReverZ]'); + WriteLn(f,'"IndexLong"="',cddrv,':\\DATA\\rev_long.idx"'); + WriteLn(f,'"IndexShort"="',cddrv,':\\DATA\\rev_shor.idx"'); + WriteLn(f,'"CDPath"="',cddrv,':\\DATA"'); + WriteLn(f,'"HDPath"="',cddrv,':\\DATA"'); + WriteLn(f,'"TempPath"="',tmpdirr,'"'); + WriteLn(f,'"NotFound"=dword:00000002'); + WriteLn(f,'"Folge"=dword:00000001'); + WriteLn(f,'"F4Start"=dword:00000001'); + WriteLn(f,'"IgnoreCDWarnung"=dword:00000000'); + WriteLn(f,'"Index"=dword:00000002'); + WriteLn(f,'"ConfigOkay"=dword:00000001'); + WriteLn(f,''); + Close(f); + WriteLn('done.'); + Write('Importing Registry entries....'); + SwapVectors; + Exec(GetEnv('COMSPEC'),'/C START /w regedit /s '+tmpdir+'\reverz.reg'); + SwapVectors; + WriteLn('hopefully done.'); + Write('Deleting reverz.reg....'); + {$I-} + Erase(f); + if IOResult<>0 then begin + WriteLn('Failed.'); + WriteLn; + WriteLn(tmpdir,'\reverz.reg could not be deleted. Delete manually!'); + WriteLn('Press any key to continue.'); + ReadKey; + end else WriteLn('done.'); + {$I+} + WriteLn; + WriteLn('All done.'); +end. diff --git a/ReverZ/readme.txt b/ReverZ/readme.txt new file mode 100644 index 0000000..ca3939c --- /dev/null +++ b/ReverZ/readme.txt @@ -0,0 +1,8 @@ +ReverZ-CD compilation based on D-Info '99 + +This CD contains all files needed for proper functioning of ReverZ. It is a stand-alone +version of ReverZ - no D-Info installation needed! Just insert the CD, let install.exe +set the paths for ReverZ correctly and then launch ReverZ.exe and have phun!! + + - RoboCop of n00b + http://www.n00b.com diff --git a/SCHED.DAT b/SCHED.DAT new file mode 100644 index 0000000..8353499 --- /dev/null +++ b/SCHED.DAT @@ -0,0 +1,14 @@ +' TERMIN.EXE - by RoboCop INDUSTRIES +' Bitte immer am Ende ein RETURN lassen + +' ==== JANUAR ==== +02.01. John Doe + +' === DEZEMBER === +02.12. Jane Doe +24.12. Weihnachten =- FREI -= +25.12. 1. Weihnachtsfeiertag +26.12. 2. Weihnachtsfeiertag +31.12. Silvester =- FREI -= + +' BENUTZER-EINTRGE diff --git a/SCHED.PAS b/SCHED.PAS new file mode 100644 index 0000000..9538a6b --- /dev/null +++ b/SCHED.PAS @@ -0,0 +1,254 @@ +program Schedule; + +{ Datendatei + ---------- + + Dateiname: [wie EXE-Datei].DAT + Format: + dd.mm. [Termin] // fr jhrliche Termine + dd.mm.yy [Termin] // fr einmalige Termine + } + + +uses Crt, Dos, VFx; + +const Days: array[0..6] of string[10] = + ('Sonntag','Montag','Dienstag', + 'Mittwoch','Donnerstag', + 'Freitag','Sonnabend'); + Months: array[1..12] of string[9] = + ('Januar','Februar','Mrz','April', + 'Mai','Juni','Juli','August','September', + 'Oktober','November','Dezember'); + +var SD,SM,SY,SDOW: word; + datf: text; + datfn: string; + increaser: byte; + waitafter: boolean; + origmode: integer; + +procedure Init; forward; +procedure Outit; forward; +procedure GetDDate(dat: string;var d,m,y: byte); forward; +function GetDDesc(dat: string): string; forward; +procedure Raise(var d,m,y: word); forward; +procedure Check4App; forward; +procedure Appointment(ter: string); forward; + + +procedure Init; +var i,lm: integer; +begin + CursorOff; + origmode := 0; + lm := LastMode; + if (lm<>3) then begin + origmode := lm; + TextMode(co80); + end; + increaser := 0; + waitafter := false; + GotoXY(1,WhereY-1); + ClrEol; + GetDate(SY,SM,SD,SDOW); + SY := SY - (SY DIV 100) * 100; + CWriteLn(' %%15#Ŀ'); + CWrite('%%8#%%7#%%15#Ĵ %%14#Schedule/DOS%%15# Ĵ '); + TextColor(7); + Write('Es ist heute ',Days[SDOW],', der ',SD,'. ',Months[SM],' ',SY,'. '); + TextColor(15); + Write(''); + Write(MultiChar('',77-WhereX)); + CWrite('%%7#%%8#'); + CWrite(' %%15#%%7# '); + WriteLn; + TextColor(7); + for i:=Length(ParamStr(0)) downto 1 do begin + if Copy(ParamStr(0),i,1)='.' then datfn := Copy(ParamStr(0),1,i-1)+'.dat'; + end; + Assign(datf,datfn); + {$I-} + Reset(datf); + if IOResult<>0 then begin + TextColor(12+blink); + Write(' '); + TextColor(12); + WriteLn('Fehler ',IOResult,' beim ffnen von ',datfn,'.'); + WriteLn; + Outit; + Halt; + end; + if Eof(datf) then begin + TextColor(12+blink); + Write(' '); + TextColor(12); + WriteLn('Datendatei ',datfn,' ist leer.'); + WriteLn; + Outit; + Halt; + end; + {$I+} +end; + +procedure Outit; +var i: integer; + h,m,s,hu,os: word; + li,c: byte; +begin + c := 9; + CWrite('%%8#%%7#%%15#'); + if waitafter then begin + Write(MultiChar('',12),' '); + CWrite('%%8#Bitte eine Taste drcken, oder # Sek. warten%%15#'); + Write(' ',MultiChar('',12)); + end else Write(MultiChar('',77-WhereX)); + CWrite('%%7#%%8#'); + li := WhereY-1; + if waitafter then begin + GetTime(h,m,os,hu); + while c<>0 do begin + GotoXY(50,li); + Write(c:1); + GetTime(h,m,s,hu); + if s<>os then begin + Dec(c); + Sound(1500); + Delay(50); + NoSound; + end; + os := s; + if keypressed then begin + ReadKey; + GotoXY(1,li); + CWrite('%%8#%%7#%%15#'); + Write(MultiChar('',72)); + CWrite('%%7#%%8#'); + CursorOn; + NormVideo; + if origmode<>0 then TextMode(origmode); + Halt; + end; + end; + end; + GotoXY(1,li); + CWrite('%%8#%%7#%%15#'); + Write(MultiChar('',72)); + CWrite('%%7#%%8#'); + CursorOn; + ReadyBeep; + NormVideo; + if origmode<>0 then TextMode(origmode); + Halt; +end; + +procedure GetDDate(dat: string;var d,m,y: byte); +var i,co: integer; + date: string; + oldp: integer; +begin + d := 0; + m := 0; + y := 0; + oldp := 1; + for i:=1 to Length(dat) do begin + if dat[i]=' ' then begin + date := Copy(dat,1,i-1); + Break; + end; + end; + Val(Copy(date,1,2),d,co); + Val(Copy(date,4,2),m,co); + if Length(date)>6 then Val(Copy(date,7,2),y,co) else y:=0; +end; + +function GetDDesc(dat: string): string; +var i: integer; +begin + for i:=1 to Length(dat) do begin + if dat[i]=' ' then begin + GetDDesc := Copy(dat,i+1,Length(dat)-i); + Break; + end; + end; +end; + +procedure Raise(var d,m,y: word); +begin + Inc(d); + Inc(increaser); + case m of + 1,3,5,7,8,10,12: if d>31 then begin + Inc(m); + d := 1; + end; + 4,6,9,11: if d>30 then begin + Inc(m); + d := 1; + end; + 2: if ((y/4=y div 4) AND (d>29)) then begin + Inc(m); + d := 1; + end else if ((y/4<>y div 4) AND (d>28)) then begin + Inc(m); + d := 1; + end; + end; + if m>12 then begin + Inc(y); + m := 1; + end; +end; + +procedure Check4App; +var tmp: string; + d,m,y: byte; + i: integer; +begin + for i:=1 to 5 do begin + Reset(datf); + while NOT Eof(datf) do begin + ReadLn(datf, tmp); + case tmp[1] of + '0'..'9': begin + GetDDate(tmp,d,m,y); + { Write('Date: ',TD,'.',TM,'.',TY,' --- '); + WriteLn('Seek for: ',d,'.',m,'.',y); } + if ((d=SD) AND (m=SM) AND ((y=SY) OR (y=0))) then Appointment(tmp); + end; + end; + end; + Raise(SD,SM,SY); + end; +end; + +procedure Appointment(ter: string); +var d,m,y: byte; +begin + GetDDate(ter,d,m,y); + case increaser of + 0: TextColor(12+blink); + 1: TextColor(12); + 2,3: TextColor(14); + 4,5: TextColor(10); + end; + Write(' '); + case increaser of + 0: begin Write('-HEUTE- '); waitafter := true; end; + 1: begin Write('-MORGEN- '); waitafter := true; end; + else begin + Write(d:2,'.',m:2,'.'); + if y<>0 then Write(y:2,' ') else Write(' '); + end; + end; + Write(''); + if ((increaser=0) OR (increaser=0)) then TextColor(15) else TextColor(7); + + WriteLn(' ',GetDDesc(ter)); +end; + +begin + Init; + Check4App; + Outit; +end. \ No newline at end of file diff --git a/SCHWINGN.PAS b/SCHWINGN.PAS new file mode 100644 index 0000000..0c47720 --- /dev/null +++ b/SCHWINGN.PAS @@ -0,0 +1,293 @@ +program Schwingungsberechnungen; {Autor: RoboCop IND.} +uses Crt,Logo; +label ChosAgain, AllAgain, Ende; +var Chosen: Char; + + + + + procedure Elong; + label ChoAgain, ContHere, PerDKnown,FreqKnown; + var Elongation, Amplitude, Wert, Omikron, Time: real; + Choose: Char; + begin; + ClrScr; + TextBackground(0); + TextColor(15); + WriteLn('-= ELONGATIONSBERECHNUNG =-'); + WriteLn; + TextColor(7); + Write('Amplitude eingeben (cm): '); + TextColor(14); + ReadLn(Amplitude); + WriteLn; + TextColor(15); + WriteLn('Auswhlen: 1 - Frequenz bekannt'); + WriteLn(' 2 - Periodendauer bekannt'); + + ChoAgain:; + TextColor(15); + Write('Ihre Wahl: '); + TextColor(14); + Choose := ReadKey; + WriteLn(Choose); + if Choose = '1' then goto FreqKnown; + if Choose = '2' then goto PerDKnown; + TextColor(12); + WriteLn('Falsche Auswahl! Es ist nur 1 oder 2 zugelassen.'); + goto ChoAgain; + + FreqKnown:; + TextColor(7); + Write ('Frequenz eingeben (Hz): '); + TextColor(14); + ReadLn (Wert); + Omikron := 2*Pi*Wert; {Ausrechnen von Omikron (w)} + goto ContHere; {bei Vorgabe der Frequenz.} + + PerDKnown:; + TextColor(7); + Write ('Periodendauer eingeben (s): '); + TextColor(14); + ReadLn (Wert); + Omikron := (2*Pi)/Wert; {Ausrechnen von Omikron bei} + goto ContHere; {Vorgabe der Frequenz.} + + ContHere:; + TextColor(7); + Write ('Gewnschter Zeitpunkt (s): '); + TextColor(14); + ReadLn (Time); + Elongation := Amplitude * sin(Omikron*Time); {Ausrechnen der Elongation} + ClrScr; {nach y=Ymax*sin(w*t)} + TextColor(15); + WriteLn ('-= ELONGATIONSBERECHNUNG =-'); + WriteLn; + TextColor(10); + WriteLn ('*** Auswertung ***'); + WriteLn; + TextColor(14); + WriteLn ('Amplitude: ',Amplitude:0:3,' cm'); + if Choose = '1' then WriteLn ('Frequenz: ',Wert:0:3,' Hz'); + if Choose = '2' then WriteLn ('Periodendauer: ',Wert:0:3,' s'); + WriteLn ('Zeitpunkt: ',Time:0:3,' s'); + WriteLn ('Elongation: ',Elongation:0:3,' cm'); + WriteLn; + TextColor(7); + WriteLn ('Die Elongation zum Zeitpunkt t=',Time:0:1,' s, bei einer maximalen'); + Write ('Auslenkung von Ymax=',Amplitude:0:1,' cm und einer '); + if Choose = '1' then WriteLn ('Frequenz von f=',Wert:0:1,' Hz'); + if Choose = '2' then WriteLn ('Periodendauer von T=',Wert:0:1,' s'); + WriteLn ('betrgt y=',Elongation:0:2,' cm.'); + WriteLn; + TextColor(14); + WriteLn ('Wenn bereit, eine Taste drcken.'); + ReadKey; + end; + + + + + procedure PDauer; + label ChoAgain, ContHere; + var Length, Gravitation, PDauer: real; + Choose: char; + Planet: string[5]; + + begin; + ClrScr; + TextBackground(0); + TextColor(15); + WriteLn('-= PERIODENDAUERBERECHNUNG =-'); + WriteLn; + TextColor(7); + Write('Lnge des Pendels eingeben (cm): '); + TextColor(14); + ReadLn(Length); + WriteLn; + TextColor(15); + WriteLn('Planet whlen: 1 - Erde'); + WriteLn(' 2 - Sonne'); + WriteLn(' 3 - Mond'); + + ChoAgain:; + TextColor(15); + Write('Ihre Wahl: '); + TextColor(14); + Choose := ReadKey; + WriteLn(Choose); + if Choose = '1' then + begin; + Gravitation := 9.80665; + Planet := 'Erde'; + goto ContHere; + end; + if Choose = '2' then + begin; + Gravitation := 274; + Planet := 'Sonne'; + goto ContHere; + end; + if Choose = '3' then + begin; + Gravitation := 1.62; + Planet := 'Mond'; + goto ContHere; + end; + TextColor(12); + WriteLn('Falsche Auswahl! Es sind nur 1, 2 oder 3 zugelassen.'); + goto ChoAgain; + + ContHere:; + ClrScr; + PDauer := 2*Pi*Sqrt(Length/Gravitation); + TextColor(15); + WriteLn('-= PERIODENDAUERBERECHNUNG =-'); + WriteLn; + TextColor(10); + WriteLn('*** AUSWERTUNG ***'); + WriteLn; + TextColor(14); + WriteLn('Lnge des Pendels: ',Length:0:3,' cm'); + WriteLn('Basierend auf ',Planet,' [',Gravitation:0:5,']'); + WriteLn('Dauer einer Periode: ',PDauer:0:3,' s'); + WriteLn; + TextColor(7); + WriteLn('Die Dauer einer Periode eines Fadenpendels mit der Lnge'); + WriteLn('l=',Length:0:1,' cm auf der/dem ',Planet,' mit einer'); + WriteLn('Anziehungskraft von g=',Gravitation:0:1,' m/s betrgt'); + WriteLn('T=',PDauer:0:2,' s.'); + WriteLn; + TextColor(14); + WriteLn('Wenn bereit, eine Taste drcken.'); + ReadKey; + end; + + + + + procedure PLength; + label ChoAgain, ContHere; + var PDauer, Gravitation, Length: real; + Planet: string[5]; + Choose: char; + + begin; + ClrScr; + TextBackground(0); + TextColor(15); + WriteLn('-= PENDELLNGENBERECHNUNG =-'); + WriteLn; + TextColor(7); + Write('Dauer einer Periode eingeben (s): '); + TextColor(14); + ReadLn(PDauer); + WriteLn; + TextColor(15); + WriteLn('Planet whlen: 1 - Erde'); + WriteLn(' 2 - Sonne'); + WriteLn(' 3 - Mond'); + + ChoAgain:; + TextColor(15); + Write('Ihre Wahl: '); + TextColor(14); + Choose := ReadKey; + WriteLn(Choose); + if Choose = '1' then + begin; + Gravitation := 9.80665; + Planet := 'Erde'; + goto ContHere; + end; + if Choose = '2' then + begin; + Gravitation := 274; + Planet := 'Sonne'; + goto ContHere; + end; + if Choose = '3' then + begin; + Gravitation := 1.62; + Planet := 'Mond'; + goto ContHere; + end; + TextColor(12); + WriteLn('Falsche Auswahl! Es sind nur 1, 2 oder 3 zugelassen.'); + goto ChoAgain; + + ContHere:; + ClrScr; + Length := (Sqr(PDauer)*Gravitation)/(4*Sqr(Pi)); + TextColor(15); + WriteLn('-= PENDELLNGENBERECHNUNG =-'); + WriteLn; + TextColor(10); + WriteLn('*** AUSWERTUNG ***'); + WriteLn; + TextColor(14); + WriteLn('Dauer einer Periode: ',PDauer:0:0,' s'); + WriteLn('Basierend auf ',Planet,' [',Gravitation:0:0,']'); + WriteLn('Lnge des Pendels: ',Length:0:0,' cm'); + WriteLn; + TextColor(7); + WriteLn('Die Lnge eines Fadenpendels mit der Periodendauer'); + WriteLn('T=',PDauer:0:0,' s auf der/dem ',Planet,' mit einer'); + WriteLn('Anziehungskraft von g=',Gravitation:0:0,' m/s betrgt'); + WriteLn('l=',PDauer:0:0,' cm.'); + WriteLn; + TextColor(14); + WriteLn('Wenn bereit, eine Taste drcken.'); + ReadKey; + end; + + + + +begin; +AllAgain:; + ClrScr; + TextColor(15); + WriteLn('-= SCHWINGUNGSBERECHNUNGEN =-'); + WriteLn; + WriteLn('1st program by'); + WriteLogo; + TextColor(7); + WriteLn('Bitte Auswahl treffen:'); + WriteLn(' 1 - Unter Eingabe von Ymax,f od. T & t, Ausrechnung von y'); + WriteLn(' 2 - Unter Eingabe von l und Auswahl von g, Ausrechnung von T'); + WriteLn(' 3 - Unter Eingabe von T und Auswahl von g, Ausrechnung von l'); + WriteLn(' 4 - Programm beenden.'); + WriteLn; +ChosAgain:; + TextColor(14); + Write('Ihre Wahl: '); + Chosen := ReadKey; + WriteLn(Chosen); + if Chosen = '1' then + begin; + Elong; + goto AllAgain; + end; + if Chosen = '2' then + begin; + PDauer; + goto AllAgain; + end; + if Chosen = '3' then + begin; + PLength; + goto AllAgain; + end; + if Chosen = '4' then + begin; + ClrScr; + TextColor(7); + WriteLn('SCHWINGUNGEN normal beendet.'); + goto Ende; + end; + TextColor(12); + WriteLn('Falsche Auswahl, drcken Sie bitte eine Taste von 1-4.'); + goto ChosAgain; +Ende:; +end. \ No newline at end of file diff --git a/SEARCH.PAS b/SEARCH.PAS new file mode 100644 index 0000000..5414ce4 --- /dev/null +++ b/SEARCH.PAS @@ -0,0 +1,174 @@ +program Search; + +uses Crt; + +var Target,Max,LastTry,LBO,Try,Step,MaxSteps,MaxSTarget: longint; + oldx,oldy: integer; + oldestx,oldesty: integer; + Steps:array[1..31] of longint; + Time: integer; + +procedure CursorOff;assembler; +asm + xor ax,ax + mov ah,01h + mov ch,20h + mov cl,20h + int 10h +end; + +procedure CursorOn;assembler; +asm + mov ah,01h + mov cx,0607h + int 10h +end; + +procedure AskForData; +begin + WriteLn(' Search-Prog '); + WriteLn; + Write('Geben Sie den Zahlenbereich an (0 fr 2147483647): 0-'); + ReadLn(Max); + if Max=0 then begin + Max:=2147483647; + GotoXY(54,3); + Write(Max); + GotoXY(1,4); + end; + Write('Geben Sie die Zahl ein, die ich suchen soll: '); + ReadLn(Target); + WriteLn; + WriteLn('Dateneingabe komplett.'); + Delay(500); + ClrScr; +end; + +procedure GetRandomData; +begin + Max:=2147483647; + Target:=Round(Random*1E3+Random*1E6+Random*1E9); +end; + +procedure GetAll; +begin + Max:=2147483637; + Inc(Target); +end; + +function Half(v1,v2: longint):longint; +begin + if v1>v2 then Half:=Round((v1-v2)/2); + if v124 then begin + co:=co+40; + li:=1; + end; + LBO:=LastTry; + LastTry:=Try; + if TryTarget then Write(Try:10,' ',Chr(16),' 0'); + if Try=Target then begin + if ((oldestx<>0) AND (oldesty<>0)) then begin + GotoXY(oldestx,oldesty); + TextColor(8); + Write(Chr(16)); + end; + oldestx:=oldx; + oldesty:=oldy; + if ((oldx<>0) AND (oldy<>0)) then begin + GotoXY(oldx,oldy); + TextColor(4); + Write(Chr(16)); + end; + oldx:=co-1; + oldy:=li; + GotoXY(co-1,li); + TextColor(12); + Write(Chr(16),Try:10,' ',Chr(29),' '); + Inc(Steps[step]); + end; + if Try<>Target then goto TryAgain; + { Delay(2000); } + Inc(Time); + if Time>1000 then begin + Time := 0; + CalcPerc; + end; + { CursorOn; } +end; + +begin + Time := 0; + TextBackground(0); + CursorOff; + ClrScr; + Randomize; + { AskForData; } + MakeList; + while not keypressed do begin + Step:=0; + GetRandomData; + { GetAll; } + Calculate; + if Step>MaxSteps then begin + MaxSteps:=Step; + MaxSTarget:=Target; + end; + end; + ReadKey; +end. \ No newline at end of file diff --git a/SETYEAR.PAS b/SETYEAR.PAS new file mode 100644 index 0000000..3a906ff --- /dev/null +++ b/SETYEAR.PAS @@ -0,0 +1,15 @@ +program SetYear; + +uses Dos; + +var y,m,d,dow: word; + ec,ny: integer; + +begin + GetDate(y,m,d,dow); + WriteLn('Datum im Computer: ',d,'.',m,'.',y); + Val(ParamStr(1),ny,ec); + SetDate(ny,m,d); + GetDate(y,m,d,dow); + WriteLn('Neues Datum : ',d,'.',m,'.',y); +end. diff --git a/SETYEAR.TXT b/SETYEAR.TXT new file mode 100644 index 0000000..64d3d79 --- /dev/null +++ b/SETYEAR.TXT @@ -0,0 +1,27 @@ +SetYear + + +Dieses Programm ndert das Systemjahr immer auf die Zahl, die hinter dem Dateinamen angegeben wird. + +z.B.: + +SETYEAR 2001 + +ndert das Systemdatum auf das Jahr 2001. + + + +Zum ndern von Date2000 gehen Sie wie folgt vor: + +- Kopieren Sie SETYEAR.EXE nach C:\ (DOS: "copy A:\SETYEAR.EXE C:\"; Windows95: mit dem Explorer kopieren) +- Finden Sie die Datei AUTOEXEC.BAT (im Verzeichnis C:\) +- Editieren Sie sie (Unter DOS: "EDIT AUTOEXEC.BAT"; Windows95: Rechtsklick auf Datei --> Bearbeiten) +- Finden Sie die Zeile mit "DATE2000" +- Lschen Sie diese Zeile und schreiben Sie stattdessen "SETYEAR 2001" (Jahreszahl anpassen!) +- Speichern Sie die Datei (DOS: Alt+D --> Speichern; Windows95: Datei --> Speichern) +- Beenden Sie den Editor (DOS: Alt+D --> Beenden; Windows95: Datei --> Beenden) +- Starten Sie Ihren Rechner neu + + +Jetzt mu man jedes Silvester nur noch die Zahl ndern. + diff --git a/SINGLCHR.PAS b/SINGLCHR.PAS new file mode 100644 index 0000000..b101cf3 --- /dev/null +++ b/SINGLCHR.PAS @@ -0,0 +1,36 @@ +program SingleChar; + +uses Crt, TimeStatus, VFx; + +var atall: longint; + +procedure WriteSign; +begin + { GotoXY(1,1); } + Write(''); +end; + +procedure OutStat; +begin + GotoXY(20,2); + Write(PerSec(atall):6:3,' chars/s'); +end; + +begin + CursorOff; + ClrScr; + atall := 0; + InitTimer; + repeat + WriteSign; + Inc(atall); + if atall/1920=Int(atall/1920) then GotoXY(1,1); + until keypressed; + ReadKey; + GotoXY(1,3); + WriteLn(atall,' chars written in ',TimeGone,' milliseconds.'); + WriteLn(PerMS(atall):0:3,' chars/ms'); + WriteLn(PerSec(atall):0:3,' chars/sec'); + WriteLn(PerMin(atall):0:3,' chars/min'); + CursorOn; +end. diff --git a/SIREN.PAS b/SIREN.PAS new file mode 100644 index 0000000..7e5f57b --- /dev/null +++ b/SIREN.PAS @@ -0,0 +1,28 @@ +program Siren; + +uses Crt; + +const MaxVal = 1200; + MinVal = 800; + +var i: integer; + tmp: integer; + +function GetSoundVal(t: real): integer; +begin + GetSoundVal := Trunc(Sin(t)*(MaxVal-MinVal)+MinVal); +end; + +begin + i:=0; + repeat + Inc(i); + tmp := GetSoundVal(i/100); + Sound(tmp); + GotoXY(1,1); Write(tmp,' Hz '); + Delay(10); + until keypressed; + NoSound; + WriteLn('* Press any key *'); + ReadKey; +end. \ No newline at end of file diff --git a/SOUNDS_T.PAS b/SOUNDS_T.PAS new file mode 100644 index 0000000..6447604 --- /dev/null +++ b/SOUNDS_T.PAS @@ -0,0 +1,38 @@ +program Sounds_Test; + +uses Crt,Sounds; + +var i,j: integer; + Killsound: boolean; + +begin + Debug := true; + Killsound := false; + if Killsound then begin + WriteLn('Killing sound NOW!'); + WriteLn('Time to die!'); + NoSound; + WriteLn('Sound is no more! Exiting...'); + Write('* Press any - and that means ANY - key *'); + ReadKey; + ClrScr; + Exit; + end; + Delay(1000); + Tone(1000,500); { Syntax: Tone(Hertz,Delay) } + Delay(100); + Siren(600,1200,5000,7); { Syntax: Siren(LoTone,HiTone,Delay,Divisor [for speed]) } + DualTone(1750,2000,1000,1); { Syntax: DualTone(Tone1,Tone2,Delay,ToneDelay) } + Write('* Press any key *'); + ReadKey; + ClrScr; + for i:=4 downto 1 do begin + for j:=16 downto 1 do begin + DualTone(i*800,j*200,500,1); + + end; + end; + Write('* Press this key again *'); + ReadKey; + ClrScr; +end. \ No newline at end of file diff --git a/SS_WIND.PAS b/SS_WIND.PAS new file mode 100644 index 0000000..606dbe8 --- /dev/null +++ b/SS_WIND.PAS @@ -0,0 +1,77 @@ +program ScreenSaver_Windows; + +uses Crt; + +const chars: string=' #'; { chars for use to fill windows } + del=100; { delay between windows } + +var x1, y1: integer; + x2, y2: integer; + rfc, rbc: integer; + usech: integer; + +procedure Initialize; +begin + TextMode(3+256); { Goes to 80x50 mode (for more windows ;-) } +end; + +procedure Shutdown; { resets all changes } +begin + TextMode(3); + Window(1,1,80,25); + TextColor(7); + TextBackground(0); +end; + +procedure GetRandomPos; +var tv: integer; +begin + x1:=Random(81); { Get some coordinates from tha nice randomizer } + x2:=Random(81); + y1:=Random(51); + y2:=Random(51); + if x1>x2 then begin { did you hear that x1 is greater than x2? } + tv := x2; + x2 := x1; + x1 := tv; + end; + if y1>y2 then begin { or even that y1 is greater than y2? } + tv := y2; + y2 := y1; + y1 := tv; + end; +end; + +procedure GetRandomColors; +begin + rfc:=Random(16); { which color do we want to use? } + rbc:=Random(16); { and behind those little chars? } +end; + +procedure GetRandomChar; +begin + usech:=Random(Length(chars))+1; { What chars? } +end; + +procedure DrawWindow; +var x: integer; +begin + window(x1,y1,x2,y2); { This has nothing to do with MICROSHITs product } + GotoXY(1,1); { go to the upper left corner } + TextColor(rfc); { tell the bios which color to use.... } + TextBackground(rbc); + for x:=1 to (x2-x1+1)*(y2-y1+1)-(x2-x1+1) do Write(chars[usech]); { fill all with those nice little chars...hehe } +end; + +begin + Initialize; { set videomode } + repeat + GetRandomPos; { get some coordinates } + GetRandomColors; { get some colors } + GetRandomChar; { get the pos of the right char } + DrawWindow; { make such a nice window } + Delay(del); { wait a sec.... } + Randomize; { reinitialize randomizer } + until keypressed; { heeeeree weee gooo agaaaiiinn ..... } + Shutdown; { shut all down - restore vidmode } +end. \ No newline at end of file diff --git a/TAN-1.PAS b/TAN-1.PAS new file mode 100644 index 0000000..008596f --- /dev/null +++ b/TAN-1.PAS @@ -0,0 +1,13 @@ +program test; + +var s,t,u,a,v: real; + +begin + a := Pi; + t := sin(a); + s := cos(a); + u := t/s; + v := t*360; + + WriteLn('Wert: ',a:8:5,' sin: ',t:8:5,' cos: ',s:8:5,' tan: ',u:8:5,' v: ',v:8:5); +end. \ No newline at end of file diff --git a/TEST.BMP b/TEST.BMP new file mode 100644 index 0000000..89b3a84 Binary files /dev/null and b/TEST.BMP differ diff --git a/TEST.DAT b/TEST.DAT new file mode 100644 index 0000000..a975235 Binary files /dev/null and b/TEST.DAT differ diff --git a/TEST.INI b/TEST.INI new file mode 100644 index 0000000..40d2f65 --- /dev/null +++ b/TEST.INI @@ -0,0 +1,453 @@ +[windows] +load= +run= +NullPort=None +device=Commodore LPS2000,HPPCL,LPT1: + +[Desktop] +Wallpaper=(None) +TileWallpaper=1 +WallpaperStyle=0 +Pattern=170 85 170 85 170 85 170 85 + +[intl] +iCountry=49 +ICurrDigits=2 +iCurrency=3 +iDate=1 +iDigits=2 +iLZero=1 +iMeasure=0 +iNegCurr=8 +iTime=1 +iTLZero=1 +s1159= +s2359= +sCountry=Germany +sCurrency=DM +sDate=. +sDecimal=, +sLanguage=deu +sList=; +sLongDate=dddd, d. MMMM yyyy +sShortDate=dd.MM.yy +sThousand=. +sTime=: + +[fonts] + +[FontSubstitutes] +Helv=MS Sans Serif +Tms Rmn=MS Serif +Times=Times New Roman +Helvetica=Arial +MS Shell Dlg=MS Sans Serif +MT Symbol=Symbol + +[Compatibility] +_3DPC=0x00400000 +_BNOTES=0x224000 +_LNOTES=0x00100000 +ACAD=0x8000 +ACT!=0x400004 +ACROBAT=0x04000000 +AD=0x10000000 +ADW30=0x10000000 +ALARMMGR=0x0040000 +ALDSETUP=0x00400000 +AMIPRINT=0x04000000 +AMIPRO=0x04000010 +APORIA=0x0100 +APPROACH=0x0004 +BALER=0x08000000 +BMAPP=0x0004 +CASMONEY=0x00200000 +CAVOIDE=0x00200000 +CCMAIL=0x00200000 +CCMCWFY=0x80 +CHARISMA=0x2000 +CONFIG=0x00400000 +CORELDRW=0x48000 +CORELPNT=0x08000000 +COSTAR=0x0004 +CP=0x0040 +CROSSTIE=0x00000400 +DARCH=0x80 +DESIGNER=0x00002000 +DIRECTOR=0x00800000 +DPLANNER=0x00200000 +DRAW=0x2000 +DS40=0x8000 +DTWIN20=0x00000400 +EAP=0x0004 +ED=0x00010000 +EXCEL=0x1000 +EXPASTRO=0x04000000 +EXTYPWND=0x00200000 +FAXVIEW=0x04000000 +FAXWORKS=0x00000400 +FH4=0x00E08000 +FLW2=0x8000 +FMPRO=0x00200000 +FREEHAND=0x8000 +FULLTEXT=0x20000000 +GIFTMAKE=0x20000000 +GUIDE=0x1000 +HDW=0x04800000 +HGW=0x8000 +HGW2EXE=0x8000 +HGW3EXE=0x8000 +HJDRAW=0x00400000 +IDAPICFG=0x00400000 +IDRAW=0x04008000 +ILLUSTRATOR=0x8000 +IMPROV2=0x00000000 +INFOCENT=0x04000000 +INSIGHT=0x00000400 +INSTAL1=0x00400000 +INSTALL=0x00400000 +INTERMIS=0x10000000 +IS20INST=0x00000000 +IVIHEALT=0x00400000 +JEOPARDY=0x00200000 +JW=0x00000000 +KALOAD2=0x00400000 +KEYCAD=0x8000 +LE_ADMIN=0x00400000 +LUI=0x20000000 +MAILSPL=0x10000000 +MAKER=0x00200000 +MAPS1=0x04008022 +MATH=0x00000001 +MAVIS=0x00200000 +MCOURIER=0x0800 +MFWIN20=0x02000000 +MILESV3=0x1000 +MILESV40=0x4 +MOZART=0x40000000 +MSARTIST=0x00100000 +MSBHUMAN=0x4 +MSREMIND=0x10000000 +MVIEWER2=0x40200000 +MYINV=0x00200000 +MYST=0x08000000 +NAFTA1=0x4008022 +NBAMW4V4=0x04000000 +NETSET2=0x0100 +NOTES=0x200000 +NOTSHELL=0x0001 +OPERATOR=0x02000000 +OUTPOST=0x00000000 +OWLAPP=0x00400000 +PACKRAT=0x0800 +PAINTER=0x00000000 +PAWC8DC3=0x00400000 +PAWIN=0x4 +PEACHW=0x04800004 +PIXIE=0x0040 +PLANIT=0x0004 +PLANNER=0x2000 +PLUS=0x1000 +PM4=0xA000 +PM5APP=0x8000 +PP4=0x00000000 +PR2=0x2000 +PRINTHLP=0x0004 +QAPLUSW=0x0004 +QLIIFAX=0x00400000 +QUAKE=0x80 +QW=0x08000000 +RELAY=0x20000000 +REM=0x8022 +RR2CD=0x00200000 +RX=0x00000400 +RXL=0x00000400 +SETUP=0x00000000 +SIDEKICK=0x0004 +SLEEPER=0x10000000 +SPCB=0x04008000 +SPORTJEP=0x00200000 +SPWIN20=0x00400000 +ST2=0x4008022 +STRAUSS=0x40000000 +STRAV=0x40000000 +SCHUBERT=0x40000000 +SSBWIN=0x00200000 +SWCWIN=0x00800004 +TCVWIN=0x00200000 +TCW=0x00400000 +TCWIN=0x0004 +TERRAIN=0x00400000 +TISETUP=0x00200000 +TL6=0x08000000 +TME=0x0100 +TMSWIN=0x20000000 +TMTWIN=0x00200000 +TMTWINCD=0x00200000 +TOUCHUP=0x00400000 +TURBOTAX=0x00080000 +VB=0x0200 +VEWINFIL=0x00400000 +VISIO=0x00000004 +VISIOHM=0x00000004 +VISION=0x0040 +W4GL=0x4000 +W4GLR=0x4000 +WGW=0x00440000 +WIN2WRS=0x1210 +WINCIM=0x4 +WINLINK=0x20000000 +WINPHONE=0x0004 +WINSIM=0x2000 +WINTACH=0x00200000 +WORDSCAN=0x02200000 +WPWINFIL=0x00000006 +WPWIN60=0x00000400 +WPWIN61=0x02000400 +WSETUP=0x00200000 +XPRESS=0x00000008 +ZETA01=0x00400000 +ZIFFBOOK=0x00200000 +VT4DLM=0x0001276c + +[Compatibility32] +CLWORKS=0x00A00000 +MCAD=0x00600000 +PHOTOSHP=0x00208000 +PODW=0x00200000 +SPSSWIN=0x00200000 +TYPSTRY2=0x00200000 +V32VM20=0x02000000 +VISIO=0x00000000 +VISIOHM=0x00000000 +WINPHONE=0x00000004 +WRDART32=0x00400000 + +[mci extensions] +mid=Sequencer +rmi=Sequencer +wav=waveaudio +avi=AVIVideo +mpeg=MPEGVideo +mpe=MPEGVideo +mpg=MPEGVideo +mpa=MPEGVideo +enc=MPEGVideo +dat=MPEGVideo +m1v=MPEGVideo +mp2=MPEGVideo +mov=MPEGVideo +qt=MPEGVideo +au=MPEGVideo +snd=MPEGVideo +aif=MPEGVideo +aiff=MPEGVideo +aifc=MPEGVideo + +[MCICompatibility] +QTWVideo=0x0001 +MCIXSND=0x0001 +GDAnim=0x0001 + +[mciavi] + +[ModuleCompatibility] +ACEROOBE=0x0004 +AIRNFM=0x0002 +ALDNCD=0x0002 +AMRES=0x0002 +ATM=0x0002 +ARCHANGEL=0x0002 +CSNOV=0x0002 +DEFDEMO=0x0002 +DIBWND=0x0002 +DIB=0x0002 +DS=0x0001 +EMLIB=0x0002 +EMSAVE=0x0002 +FH4=0x0002 +GEDIT=0x0002 +GEORGE=0x0002 +GVBSETUP=0x0002 +HRWCD=0x0002 +ISLFAXPR=0x0002 +KIDDESK=0x0002 +KIDSTYPE=0x0000 +KNPS=0x0002 +LIONKING=0x0002 +MAUI_DRV=0x0002 +MGXWMF=0x0002 +MEMMAP=0x0002 +MSARTIST=0x0002 +MSCRWRTR=0x0002 +MSCUISTF=0x0001 +MVIEWER2=0x0002 +MWAVSCAN=0x0002 +MYINV=0x0002 +OLESVR=0x0002 +PDOXWIN=0x0002 +PLANIT=0x0002 +PP3=0x0002 +PP4=0x0002 +PPPP=0x0002 +PXDSRV2=0x0002 +REVIEWRT=0x0002 +ROULETTE=0x0002 +RRIRJ=0x0002 +RR1=0x0002 +RR2CD=0x0002 +STL_DLG=0x0002 +TECO=0x0001 +TER=0x0002 +TLW0LOC=0x0002 +TMSWIN=0x0002 +USA=0x0002 +VOICE=0x0002 +WFXVIEW=0x0004 +WINFORM=0x0002 +WPWIN61=0x0002 + +[Pscript.Drv] +ATMWorkaround=1 + +[Extensions] +txt=notepad.exe ^.txt +bmp=C:\Progra~1\Zubehr\mspaint.exe ^.bmp +pcx=C:\Progra~1\Zubehr\mspaint.exe ^.pcx +mov=C:\WINDOWS\PLAY32.EXE ^.mov +pic=C:\WINDOWS\VIEW32.EXE ^.pic +ZIP=C:\PROGRAMM\WINZIP32\winzip32.exe ^.ZIP +LZH=C:\PROGRAMM\WINZIP32\winzip32.exe ^.LZH +ARJ=C:\PROGRAMM\WINZIP32\winzip32.exe ^.ARJ +ARC=C:\PROGRAMM\WINZIP32\winzip32.exe ^.ARC +TAR=C:\PROGRAMM\WINZIP32\winzip32.exe ^.TAR +TAZ=C:\PROGRAMM\WINZIP32\winzip32.exe ^.TAZ +TGZ=C:\PROGRAMM\WINZIP32\winzip32.exe ^.TGZ +GZ=C:\PROGRAMM\WINZIP32\winzip32.exe ^.GZ +Z=C:\PROGRAMM\WINZIP32\winzip32.exe ^.Z + +[Ports] +LPT1:= +LPT2:= +LPT3:= +FILE:= +HTMLFILE:= +COM3:=9600,n,8,1,x +COM2:=9600,n,8,1, +COM1:=9600,n,8,1, +\\Mister_X\JX-9500E= +COM4:=9600,n,8,1,x + +[embedding] +Package=Paket,Paket,packager.exe,picture +PBrush=Paintbrush Picture,Paintbrush Picture,C:\PROGRAMM\ZUBEHR\MSPAINT.EXE,picture +Paint.Picture=Bitmap,Bitmap,C:\PROGRAMM\ZUBEHR\MSPAINT.EXE,picture +WangImage.Document=Bilddokument,Bilddokument,C:\WINDOWS\WANGIMG.EXE,picture + +[Devices] +Commodore LPS2000=HPPCL,LPT1: +Microsoft HTML Treiber=HTML,FILE: +Ausdruck in Textdatei=TTY,FILE: +Sharp JX-9500E (Netzwerk)=HPPCL,\\Mister_X\JX-9500E + +[PrinterPorts] +Commodore LPS2000=HPPCL,LPT1:,15,45 +Microsoft HTML Treiber=HTML,FILE:,15,45 +Ausdruck in Textdatei=TTY,FILE:,15,45 +Sharp JX-9500E (Netzwerk)=HPPCL,\\Mister_X\JX-9500E,15,45 + +[Sounds] +SystemDefault=, + +[XMouse] +BringWindowToTop=1 +ConsoleWindowsOnly=0 +Delay=50 + +[colors] +Scrollbar=192 192 192 +Background=0 0 128 +ActiveTitle=0 0 128 +InactiveTitle=128 128 128 +Menu=192 192 192 +Window=192 192 192 +WindowFrame=0 0 0 +MenuText=0 0 0 +WindowText=0 0 0 +TitleText=255 255 255 +ActiveBorder=192 192 192 +InactiveBorder=192 192 192 +AppWorkspace=128 128 128 +Hilight=0 0 128 +HilightText=255 255 0 +ButtonFace=192 192 192 +ButtonShadow=128 128 128 +GrayText=128 128 128 +ButtonText=0 0 0 +InactiveTitleText=192 192 192 +ButtonHilight=255 255 255 +ButtonDkShadow=0 0 0 +ButtonLight=192 192 192 +InfoText=0 0 0 +InfoWindow=255 255 192 + +[FlexiCD] +Resume=1073872897 + +[Dbbox] +FreiTage=1.1, 1.5, 3.10, 25.12-26.12 + +[MSCharMap] +Font=Small Fonts + +[programs] +iexplore.exe="C:\Programme\Internet Explorer\iexplore.exe" + +[MHSC] +Calibration_Sw=1 +ScanMode=1024 +DPI=200 +ScrollRightPos=70 +ScrollLeftPos=0 +ScanHeight=60 +Unit=1 +ScanTimeH=13316 +ScanTimeL=28639 + +[QuickRes] +Options=2 + +[DrawDib] +pnpdrvr.drv 800x600x8(0)=55,0,0,0 + +[SciCalc] +layout=0 + +[WinZip] +Name=bcom +SN=D1010288 +win32_version=6.1 + +[Mail] +MAPI=1 +MAPIX=1 +OLEMessaging=1 +CMC=1 +CMCDLLNAME=mapi.dll +CMCDLLNAME32=MAPI32.DLL +Exchange=C:\PROGRA~1\MICROS~1\exchng32.exe + +[Convert] +TBEF=OFF + +[MAPI 1.0 Time Zone] +ActiveTimeBias=ffffff88 +StandardName=MEZ - Mitteleuropische Zeit +DaylightName=MESZ - Mitteleurop. Sommerzeit +Bias=ffffffc4 +StandardBias=0 +DaylightBias=ffffffc4 +StandardStart=00000A00000005000300000000000000 +DaylightStart=00000300000005000200000000000000 +DaylightFlag=2 + diff --git a/TEST.PAS b/TEST.PAS new file mode 100644 index 0000000..167c18d --- /dev/null +++ b/TEST.PAS @@ -0,0 +1,3 @@ +begin + WriteLn('TEST'); +end. \ No newline at end of file diff --git a/TESTBAK.INI b/TESTBAK.INI new file mode 100644 index 0000000..40d2f65 --- /dev/null +++ b/TESTBAK.INI @@ -0,0 +1,453 @@ +[windows] +load= +run= +NullPort=None +device=Commodore LPS2000,HPPCL,LPT1: + +[Desktop] +Wallpaper=(None) +TileWallpaper=1 +WallpaperStyle=0 +Pattern=170 85 170 85 170 85 170 85 + +[intl] +iCountry=49 +ICurrDigits=2 +iCurrency=3 +iDate=1 +iDigits=2 +iLZero=1 +iMeasure=0 +iNegCurr=8 +iTime=1 +iTLZero=1 +s1159= +s2359= +sCountry=Germany +sCurrency=DM +sDate=. +sDecimal=, +sLanguage=deu +sList=; +sLongDate=dddd, d. MMMM yyyy +sShortDate=dd.MM.yy +sThousand=. +sTime=: + +[fonts] + +[FontSubstitutes] +Helv=MS Sans Serif +Tms Rmn=MS Serif +Times=Times New Roman +Helvetica=Arial +MS Shell Dlg=MS Sans Serif +MT Symbol=Symbol + +[Compatibility] +_3DPC=0x00400000 +_BNOTES=0x224000 +_LNOTES=0x00100000 +ACAD=0x8000 +ACT!=0x400004 +ACROBAT=0x04000000 +AD=0x10000000 +ADW30=0x10000000 +ALARMMGR=0x0040000 +ALDSETUP=0x00400000 +AMIPRINT=0x04000000 +AMIPRO=0x04000010 +APORIA=0x0100 +APPROACH=0x0004 +BALER=0x08000000 +BMAPP=0x0004 +CASMONEY=0x00200000 +CAVOIDE=0x00200000 +CCMAIL=0x00200000 +CCMCWFY=0x80 +CHARISMA=0x2000 +CONFIG=0x00400000 +CORELDRW=0x48000 +CORELPNT=0x08000000 +COSTAR=0x0004 +CP=0x0040 +CROSSTIE=0x00000400 +DARCH=0x80 +DESIGNER=0x00002000 +DIRECTOR=0x00800000 +DPLANNER=0x00200000 +DRAW=0x2000 +DS40=0x8000 +DTWIN20=0x00000400 +EAP=0x0004 +ED=0x00010000 +EXCEL=0x1000 +EXPASTRO=0x04000000 +EXTYPWND=0x00200000 +FAXVIEW=0x04000000 +FAXWORKS=0x00000400 +FH4=0x00E08000 +FLW2=0x8000 +FMPRO=0x00200000 +FREEHAND=0x8000 +FULLTEXT=0x20000000 +GIFTMAKE=0x20000000 +GUIDE=0x1000 +HDW=0x04800000 +HGW=0x8000 +HGW2EXE=0x8000 +HGW3EXE=0x8000 +HJDRAW=0x00400000 +IDAPICFG=0x00400000 +IDRAW=0x04008000 +ILLUSTRATOR=0x8000 +IMPROV2=0x00000000 +INFOCENT=0x04000000 +INSIGHT=0x00000400 +INSTAL1=0x00400000 +INSTALL=0x00400000 +INTERMIS=0x10000000 +IS20INST=0x00000000 +IVIHEALT=0x00400000 +JEOPARDY=0x00200000 +JW=0x00000000 +KALOAD2=0x00400000 +KEYCAD=0x8000 +LE_ADMIN=0x00400000 +LUI=0x20000000 +MAILSPL=0x10000000 +MAKER=0x00200000 +MAPS1=0x04008022 +MATH=0x00000001 +MAVIS=0x00200000 +MCOURIER=0x0800 +MFWIN20=0x02000000 +MILESV3=0x1000 +MILESV40=0x4 +MOZART=0x40000000 +MSARTIST=0x00100000 +MSBHUMAN=0x4 +MSREMIND=0x10000000 +MVIEWER2=0x40200000 +MYINV=0x00200000 +MYST=0x08000000 +NAFTA1=0x4008022 +NBAMW4V4=0x04000000 +NETSET2=0x0100 +NOTES=0x200000 +NOTSHELL=0x0001 +OPERATOR=0x02000000 +OUTPOST=0x00000000 +OWLAPP=0x00400000 +PACKRAT=0x0800 +PAINTER=0x00000000 +PAWC8DC3=0x00400000 +PAWIN=0x4 +PEACHW=0x04800004 +PIXIE=0x0040 +PLANIT=0x0004 +PLANNER=0x2000 +PLUS=0x1000 +PM4=0xA000 +PM5APP=0x8000 +PP4=0x00000000 +PR2=0x2000 +PRINTHLP=0x0004 +QAPLUSW=0x0004 +QLIIFAX=0x00400000 +QUAKE=0x80 +QW=0x08000000 +RELAY=0x20000000 +REM=0x8022 +RR2CD=0x00200000 +RX=0x00000400 +RXL=0x00000400 +SETUP=0x00000000 +SIDEKICK=0x0004 +SLEEPER=0x10000000 +SPCB=0x04008000 +SPORTJEP=0x00200000 +SPWIN20=0x00400000 +ST2=0x4008022 +STRAUSS=0x40000000 +STRAV=0x40000000 +SCHUBERT=0x40000000 +SSBWIN=0x00200000 +SWCWIN=0x00800004 +TCVWIN=0x00200000 +TCW=0x00400000 +TCWIN=0x0004 +TERRAIN=0x00400000 +TISETUP=0x00200000 +TL6=0x08000000 +TME=0x0100 +TMSWIN=0x20000000 +TMTWIN=0x00200000 +TMTWINCD=0x00200000 +TOUCHUP=0x00400000 +TURBOTAX=0x00080000 +VB=0x0200 +VEWINFIL=0x00400000 +VISIO=0x00000004 +VISIOHM=0x00000004 +VISION=0x0040 +W4GL=0x4000 +W4GLR=0x4000 +WGW=0x00440000 +WIN2WRS=0x1210 +WINCIM=0x4 +WINLINK=0x20000000 +WINPHONE=0x0004 +WINSIM=0x2000 +WINTACH=0x00200000 +WORDSCAN=0x02200000 +WPWINFIL=0x00000006 +WPWIN60=0x00000400 +WPWIN61=0x02000400 +WSETUP=0x00200000 +XPRESS=0x00000008 +ZETA01=0x00400000 +ZIFFBOOK=0x00200000 +VT4DLM=0x0001276c + +[Compatibility32] +CLWORKS=0x00A00000 +MCAD=0x00600000 +PHOTOSHP=0x00208000 +PODW=0x00200000 +SPSSWIN=0x00200000 +TYPSTRY2=0x00200000 +V32VM20=0x02000000 +VISIO=0x00000000 +VISIOHM=0x00000000 +WINPHONE=0x00000004 +WRDART32=0x00400000 + +[mci extensions] +mid=Sequencer +rmi=Sequencer +wav=waveaudio +avi=AVIVideo +mpeg=MPEGVideo +mpe=MPEGVideo +mpg=MPEGVideo +mpa=MPEGVideo +enc=MPEGVideo +dat=MPEGVideo +m1v=MPEGVideo +mp2=MPEGVideo +mov=MPEGVideo +qt=MPEGVideo +au=MPEGVideo +snd=MPEGVideo +aif=MPEGVideo +aiff=MPEGVideo +aifc=MPEGVideo + +[MCICompatibility] +QTWVideo=0x0001 +MCIXSND=0x0001 +GDAnim=0x0001 + +[mciavi] + +[ModuleCompatibility] +ACEROOBE=0x0004 +AIRNFM=0x0002 +ALDNCD=0x0002 +AMRES=0x0002 +ATM=0x0002 +ARCHANGEL=0x0002 +CSNOV=0x0002 +DEFDEMO=0x0002 +DIBWND=0x0002 +DIB=0x0002 +DS=0x0001 +EMLIB=0x0002 +EMSAVE=0x0002 +FH4=0x0002 +GEDIT=0x0002 +GEORGE=0x0002 +GVBSETUP=0x0002 +HRWCD=0x0002 +ISLFAXPR=0x0002 +KIDDESK=0x0002 +KIDSTYPE=0x0000 +KNPS=0x0002 +LIONKING=0x0002 +MAUI_DRV=0x0002 +MGXWMF=0x0002 +MEMMAP=0x0002 +MSARTIST=0x0002 +MSCRWRTR=0x0002 +MSCUISTF=0x0001 +MVIEWER2=0x0002 +MWAVSCAN=0x0002 +MYINV=0x0002 +OLESVR=0x0002 +PDOXWIN=0x0002 +PLANIT=0x0002 +PP3=0x0002 +PP4=0x0002 +PPPP=0x0002 +PXDSRV2=0x0002 +REVIEWRT=0x0002 +ROULETTE=0x0002 +RRIRJ=0x0002 +RR1=0x0002 +RR2CD=0x0002 +STL_DLG=0x0002 +TECO=0x0001 +TER=0x0002 +TLW0LOC=0x0002 +TMSWIN=0x0002 +USA=0x0002 +VOICE=0x0002 +WFXVIEW=0x0004 +WINFORM=0x0002 +WPWIN61=0x0002 + +[Pscript.Drv] +ATMWorkaround=1 + +[Extensions] +txt=notepad.exe ^.txt +bmp=C:\Progra~1\Zubehr\mspaint.exe ^.bmp +pcx=C:\Progra~1\Zubehr\mspaint.exe ^.pcx +mov=C:\WINDOWS\PLAY32.EXE ^.mov +pic=C:\WINDOWS\VIEW32.EXE ^.pic +ZIP=C:\PROGRAMM\WINZIP32\winzip32.exe ^.ZIP +LZH=C:\PROGRAMM\WINZIP32\winzip32.exe ^.LZH +ARJ=C:\PROGRAMM\WINZIP32\winzip32.exe ^.ARJ +ARC=C:\PROGRAMM\WINZIP32\winzip32.exe ^.ARC +TAR=C:\PROGRAMM\WINZIP32\winzip32.exe ^.TAR +TAZ=C:\PROGRAMM\WINZIP32\winzip32.exe ^.TAZ +TGZ=C:\PROGRAMM\WINZIP32\winzip32.exe ^.TGZ +GZ=C:\PROGRAMM\WINZIP32\winzip32.exe ^.GZ +Z=C:\PROGRAMM\WINZIP32\winzip32.exe ^.Z + +[Ports] +LPT1:= +LPT2:= +LPT3:= +FILE:= +HTMLFILE:= +COM3:=9600,n,8,1,x +COM2:=9600,n,8,1, +COM1:=9600,n,8,1, +\\Mister_X\JX-9500E= +COM4:=9600,n,8,1,x + +[embedding] +Package=Paket,Paket,packager.exe,picture +PBrush=Paintbrush Picture,Paintbrush Picture,C:\PROGRAMM\ZUBEHR\MSPAINT.EXE,picture +Paint.Picture=Bitmap,Bitmap,C:\PROGRAMM\ZUBEHR\MSPAINT.EXE,picture +WangImage.Document=Bilddokument,Bilddokument,C:\WINDOWS\WANGIMG.EXE,picture + +[Devices] +Commodore LPS2000=HPPCL,LPT1: +Microsoft HTML Treiber=HTML,FILE: +Ausdruck in Textdatei=TTY,FILE: +Sharp JX-9500E (Netzwerk)=HPPCL,\\Mister_X\JX-9500E + +[PrinterPorts] +Commodore LPS2000=HPPCL,LPT1:,15,45 +Microsoft HTML Treiber=HTML,FILE:,15,45 +Ausdruck in Textdatei=TTY,FILE:,15,45 +Sharp JX-9500E (Netzwerk)=HPPCL,\\Mister_X\JX-9500E,15,45 + +[Sounds] +SystemDefault=, + +[XMouse] +BringWindowToTop=1 +ConsoleWindowsOnly=0 +Delay=50 + +[colors] +Scrollbar=192 192 192 +Background=0 0 128 +ActiveTitle=0 0 128 +InactiveTitle=128 128 128 +Menu=192 192 192 +Window=192 192 192 +WindowFrame=0 0 0 +MenuText=0 0 0 +WindowText=0 0 0 +TitleText=255 255 255 +ActiveBorder=192 192 192 +InactiveBorder=192 192 192 +AppWorkspace=128 128 128 +Hilight=0 0 128 +HilightText=255 255 0 +ButtonFace=192 192 192 +ButtonShadow=128 128 128 +GrayText=128 128 128 +ButtonText=0 0 0 +InactiveTitleText=192 192 192 +ButtonHilight=255 255 255 +ButtonDkShadow=0 0 0 +ButtonLight=192 192 192 +InfoText=0 0 0 +InfoWindow=255 255 192 + +[FlexiCD] +Resume=1073872897 + +[Dbbox] +FreiTage=1.1, 1.5, 3.10, 25.12-26.12 + +[MSCharMap] +Font=Small Fonts + +[programs] +iexplore.exe="C:\Programme\Internet Explorer\iexplore.exe" + +[MHSC] +Calibration_Sw=1 +ScanMode=1024 +DPI=200 +ScrollRightPos=70 +ScrollLeftPos=0 +ScanHeight=60 +Unit=1 +ScanTimeH=13316 +ScanTimeL=28639 + +[QuickRes] +Options=2 + +[DrawDib] +pnpdrvr.drv 800x600x8(0)=55,0,0,0 + +[SciCalc] +layout=0 + +[WinZip] +Name=bcom +SN=D1010288 +win32_version=6.1 + +[Mail] +MAPI=1 +MAPIX=1 +OLEMessaging=1 +CMC=1 +CMCDLLNAME=mapi.dll +CMCDLLNAME32=MAPI32.DLL +Exchange=C:\PROGRA~1\MICROS~1\exchng32.exe + +[Convert] +TBEF=OFF + +[MAPI 1.0 Time Zone] +ActiveTimeBias=ffffff88 +StandardName=MEZ - Mitteleuropische Zeit +DaylightName=MESZ - Mitteleurop. Sommerzeit +Bias=ffffffc4 +StandardBias=0 +DaylightBias=ffffffc4 +StandardStart=00000A00000005000300000000000000 +DaylightStart=00000300000005000200000000000000 +DaylightFlag=2 + diff --git a/TEXTSTAT.PAS b/TEXTSTAT.PAS new file mode 100644 index 0000000..9dfbc03 --- /dev/null +++ b/TEXTSTAT.PAS @@ -0,0 +1,38 @@ +program TextStat; + +uses Crt; + +var t: char; + i: integer; + s: array[1..26] of integer; + sum: longint; + f: file of char; + p: single; + op: single; + +begin + ClrScr; + for i:=1 to 26 do s[i]:=0; + assign(f,ParamStr(1)); + {$I-} + Reset(f); + if IOResult<>0 then Halt; + {$I+} + sum := 0; + op := 0; + while NOT Eof(f) do begin + Read(f,t); + if (Ord(Upcase(t))>64) AND (Ord(Upcase(t))<91) then Inc(s[Ord(Upcase(t))-64]); + Inc(sum); + p := (sum/FileSize(f))*100; + if (p>op+1) OR (p=100) then begin + GotoXY(1,1); + for i:=1 to 26 do WriteLn(Chr(i+64),': ',s[i]:4,' (',(s[i]/sum)*100:9:5,'%)'); + WriteLn('Chars analyzed: ',sum:5); + WriteLn('Percentage completed: ',p:9:3); + op := p; + end; + end; + Close(f); + ReadKey; +end. diff --git a/TMPCLEAR.PAS b/TMPCLEAR.PAS new file mode 100644 index 0000000..2ce2b75 --- /dev/null +++ b/TMPCLEAR.PAS @@ -0,0 +1,209 @@ +program DelTemp; + +uses Crt, DOS; + +type Tpb = record + x: word; + y: word; + end; + +const level: byte = 0; + border: record + frame: string[6]; + width, height: word; + end = (frame:'ɻȼ';width:80;height:4); + ac: byte = 1; + dircount: integer = 1; + filcount: integer = 1; + +var TempDir: string[40]; + screen: array[1..50, 1..80, 1..2] of byte absolute $b800:0000; + pb: Tpb; + +procedure Abort_NoTempFound; +begin + TextColor(12); + WriteLn('Temporary Directory not found. Check your Envvars TEMP and/or TMP!'); + TextColor(7); + Halt(1); +end; + +procedure Abort_FileLocked(f: string); +begin + WriteLn('Oooops with ',f,'. Exiting...'); + Halt(2); +end; + +procedure DrawBorder; +var i: integer; +begin + screen[WhereY,1,1] := Ord(border.frame[1]); + for i:=2 to border.width-1 do screen[WhereY,i,1] := Ord(border.frame[6]); + screen[WhereY,border.width,1] := Ord(border.frame[2]); + WriteLn; + for i:=2 to border.height-1 do begin + screen[WhereY,1,1] := Ord(border.frame[5]); + screen[WhereY,border.width,1] := Ord(border.frame[5]); + WriteLn; + end; + screen[WhereY,1,1] := Ord(border.frame[3]); + for i:=2 to border.width-1 do screen[WhereY,i,1] := Ord(border.frame[6]); + screen[WhereY,border.width,1] := Ord(border.frame[4]); + WriteLn; + pb.x := 1; + pb.y := WhereY-border.height; +end; + +procedure UpdatePb; +const e=0; + d=7; +var i: integer; + c: byte; +begin + c := ac; + Inc(ac); + if ac>3 then ac:=1; + for i:=1 to border.width do begin + if (c=3) then screen[pb.y,i,2] := d else screen[pb.y,i,2] := e; + Dec(c); + if c<1 then c:=3; + end; + for i:=1 to border.height-2 do begin + if (c=3) then screen[pb.y+i,border.width,2] := d else screen[pb.y+i,border.width,2] := e; + Dec(c); + if c<1 then c:=3; + end; + for i:=border.width downto 1 do begin + if (c=3) then screen[pb.y+border.height-1,i,2] := d else screen[pb.y+border.height-1,i,2] := e; + Dec(c); + if c<1 then c:=3; + end; + for i:=border.height-2 downto 1 do begin + if (c=3) then screen[pb.y+i,1,2] := d else screen[pb.y+i,1,2] := e; + Dec(c); + if c<1 then c:=3; + end; +end; + +procedure RestorePb; +var i: word; +begin + for i:=1 to border.width do begin + screen[pb.y,i,2] := 7; + screen[pb.y+border.height-1,i,2] := 7; + end; + for i:=1 to border.height-2 do begin + screen[pb.y+i,1,2] := 7; + screen[pb.y+i,border.width,2] := 7; + end; +end; + +function IS(f: SearchRec; a: byte): boolean; +var tmp: byte; +begin + tmp := f.Attr AND a; + if (tmp=a) then IS := true else IS := false; +end; + +procedure WritePathInfo(x: string;l: integer); +var out: string[69]; + i: integer; +begin + GotoXY(pb.x+9,pb.y+1); + Str(level:0,out); + out := '['+out+'] '+x+'\'; + for i:=Length(out) to 69 do out := out + ' '; + Write(out); +end; + +function LZ(x: integer): string; +var tmp: string; +begin + Str(x:0,tmp); + if Length(tmp)<2 then tmp := '0'+tmp; + LZ := tmp; +end; + +procedure WriteFileInfo(f: SearchRec); +var i,j: integer; + tm: DateTime; +begin + GotoXY(pb.x+9,pb.y+2); + for i:=Length(f.Name) downto 1 do begin + if f.Name[i]='.' then begin + Write(Copy(f.Name,1,i-1)); + for j:=i to 9 do Write(' '); + Write(Copy(f.Name,i+1,Length(f.Name)-i)); + end; + end; + GotoXY(22,WhereY); + Write(f.Size:9,' '); + if IS(f,Directory) then Write('D') + else if IS(f,VolumeID) then Write('V') + else Write('-'); + if IS(f,Archive) then Write('A') else Write('-'); + if IS(f,Hidden) then Write('H') else Write('-'); + if IS(f,ReadOnly) then Write('R') else Write('-'); + if IS(f,SysFile) then Write('S') else Write('-'); + Write(' '); + UnpackTime(f.Time,tm); + Write(LZ(tm.Day)+'.'+LZ(tm.Month)+'.',tm.Year,' '+LZ(tm.Hour)+':'+LZ(tm.Min)+'.'+LZ(tm.Sec)); +end; + +procedure ParseDirRec(x: string); +var DC: SearchRec; + f: file; +begin + Inc(level); + Inc(dircount); + WritePathInfo(x,level); + FindFirst(x+'\*.*',AnyFile,DC); + while DosError=0 do begin + UpdatePb; + Delay(50); + if (DC.Name<>'.') AND (DC.Name<>'..') then begin + WriteFileInfo(DC); + if IS(DC,Directory) then begin + ParseDirRec(x+'\'+DC.Name); + WritePathInfo(x,level); + { RmDir(x+'\'+DC.Name); } + end else begin + Assign(f,x+'\'+DC.Name); + if (IS(DC,ReadOnly)) OR (IS(DC,Hidden)) OR (IS(DC,SysFile)) then SetFAttr(f,Archive); + if DosError=5 then begin + Abort_FileLocked(x+'\'+DC.Name); + end; + Inc(filcount); + { Erase(f); } + end; + end; + FindNext(DC); + end; + Dec(level); +end; + +procedure WriteFinalStats; +var i: integer; +begin + for i:=2 to 79 do begin + screen[pb.y+1,i,1] := 32; + screen[pb.y+2,i,1] := 32; + end; + GotoXY(pb.x+2,pb.y+1); Write('Directories parsed: ',dircount); + GotoXY(pb.x+2,pb.y+2); Write('Files deleted: ',filcount); +end; + +begin + WriteLn('-=+ TempClear +=- (c)2000 by Markus Birth '); + TempDir := GetEnv('TEMP'); + if TempDir='' then TempDir := GetEnv('TMP'); + if TempDir='' then Abort_NoTempFound; + GotoXY(1,WhereY-1); + DrawBorder; + GotoXY(pb.x+2,pb.y+1); Write(' Path:'); + GotoXY(pb.x+2,pb.y+2); Write('Entry:'); + ParseDirRec(TempDir); + RestorePb; + WriteFinalStats; + GotoXY(1,pb.y+border.height); +end. diff --git a/TRIPLSND.PAS b/TRIPLSND.PAS new file mode 100644 index 0000000..7152070 --- /dev/null +++ b/TRIPLSND.PAS @@ -0,0 +1,16 @@ +uses Crt; + +var i: integer; + + +begin + for i:=1 to 50 do begin + Sound(800); + Delay(1); + Sound(1000); + Delay(1); + Sound(1200); + Delay(1); + end; + NoSound; +end. \ No newline at end of file diff --git a/TYPEFILE.PAS b/TYPEFILE.PAS new file mode 100644 index 0000000..16e10ce --- /dev/null +++ b/TYPEFILE.PAS @@ -0,0 +1,21 @@ +program TypeTest; + +type TTest=record + x,y: integer; + bla: string[20]; + end; + +var Test: TTest; + f: file of TTest; + +begin + Assign(f,'test.dat'); + Rewrite(f); + Test.x := 5; + Test.y := 10; + Test.bla := 'This is only a test!!'; + Write(f, Test); + + + +end. diff --git a/Terranet/AUSWERT.HTM b/Terranet/AUSWERT.HTM new file mode 100644 index 0000000..2340930 --- /dev/null +++ b/Terranet/AUSWERT.HTM @@ -0,0 +1,156 @@ +"Nr.","Nickname","Statements","gesagte Wrter""durchschn. Wrterzahl / Statement","benutzte Smileys","actions" +"1","Das Auge","23","118","5.13","0","0" +"2","martina (experte)","34","269","7.91","0","0" +"3","WC","0","0","0.00","0","0" +"4","Jojo","1","7","7.00","0","0" +"5","ronald(Experte)","46","313","6.80","1","0" +"6","IN@Cafe Mainz","0","0","0.00","0","0" +"7","IN@Cafe 2 Mainz","0","0","0.00","0","0" +"8","Tammo","23","166","7.22","0","0" +"9","RoboCop","0","0","0.00","0","0" +"10","work3@Cafe Mainz","1","8","8.00","0","0" +"11","Robi","4","24","6.00","0","0" +"12","Walter M.","20","128","6.40","0","0" +"13","Kiki","12","99","8.25","0","0" +"14","Jrgen","2","17","8.50","0","0" +"15","Superman","3","21","7.00","0","0" +"16","Frank","1","8","8.00","0","0" +"17","terranetcafe","44","422","9.59","0","0" +"18","carlotta","8","35","4.38","0","0" +"19","philipp","30","229","7.63","0","0" +"20","Lorchi","0","0","0.00","0","0" +"21","hobbes","2","7","3.50","0","0" +"22","Beate","18","130","7.22","1","0" +"23","mr. croley","1","10","10.00","0","0" +"24","Fank","0","0","0.00","0","0" +"25","TL","1","9","9.00","0","0" +"26","Ralph In@Caf Mainz","2","10","5.00","0","0" +"27","Ric","4","30","7.50","0","0" +"28","Ogawoga","0","0","0.00","0","0" +"29","semikolon","2","21","10.50","0","0" +"30","Sren","34","156","4.59","0","0" +"31","Lorchi (Experte)","9","94","10.44","0","0" +"32","Martin","0","0","0.00","0","0" +"33","D-FENS","0","0","0.00","0","0" +"34","FReaKER","25","350","14.00","0","0" +"35","duke","1","2","2.00","0","0" +"36","Kent","6","57","9.50","0","0" +"37","TMD","0","0","0.00","0","0" +"38","SmokyII","0","0","0.00","0","0" +"39","mr. crowley","7","52","7.43","0","0" +"40","Elroy","1","8","8.00","0","0" +"41","Joe","0","0","0.00","0","0" +"42","Ralph","20","137","6.85","0","0" +"43","send to Moderator: Beate","5","35","7.00","0","0" +"44","Smoky","1","4","4.00","0","0" +"45","Kai","22","179","8.14","3","0" +"46","LonelyOne","1","7","7.00","0","0" +"47","Taal","1","5","5.00","0","0" +"48","arschbacke","2","3","1.50","0","0" +"49","Spiky","3","29","9.67","0","0" +"50","Lonely1","0","0","0.00","0","0" +"51","wonderer","0","0","0.00","0","0" +"52","Thorsten","1","7","7.00","0","0" +"53","Andreas M","4","19","4.75","0","0" +"54","c2","0","0","0.00","0","0" +"55","koforce","8","52","6.50","0","0" +"56","roger rabbit","0","0","0.00","0","0" +"57","pluto","0","0","0.00","0","0" +"58","Felitsche","6","39","6.50","0","0" +"59","salco","0","0","0.00","0","0" +"60","charly","1","7","7.00","0","0" +"61","Gabilein","2","18","9.00","0","0" +"62","meter","3","9","3.00","0","0" +"63","Klaas aus Mainz","1","4","4.00","0","0" +"64","send to Moderator: Das Auge","1","6","6.00","0","0" +"65","Koze","0","0","0.00","0","0" +"66","Peter","8","63","7.88","0","0" +"67","Berndd","0","0","0.00","0","0" +"68","maldoror","0","0","0.00","0","0" +"69","girl15","24","165","6.88","0","1" +"70","Fouche","0","0","0.00","0","0" +"71","penelope","1","17","17.00","0","0" +"72","pepe","1","10","10.00","0","0" +"73","Derkologe","0","0","0.00","0","0" +"74","Harvey","0","0","0.00","0","0" +"75","obelix","0","0","0.00","0","0" +"76","DaKilla","1","7","7.00","0","0" +"77","fliege","0","0","0.00","0","0" +"78","TiPPeR","1","10","10.00","0","0" +"79","Andreas","1","19","19.00","0","0" +"80","Stratton","0","0","0.00","0","0" +"81","link","1","1","1.00","0","0" +"82","Jan","0","0","0.00","0","0" +"83","Tommy","0","0","0.00","0","0" +"84","Phantom","1","2","2.00","0","0" +"85","Teufel","1","6","6.00","0","0" +"86","Don Dan","9","83","9.22","2","0" +"87","Lancelot","2","13","6.50","0","0" +"88","Otto","0","0","0.00","0","0" +"89","rollsplitt","7","84","12.00","0","0" +"90","Jrgen S","3","15","5.00","0","0" +"91","hansjrg","3","28","9.33","0","0" +"92","send to Moderator: Tammo","3","34","11.33","0","0" +"93","Talimee","0","0","0.00","0","0" +"94","Bobby","0","0","0.00","0","0" +"95","overflyer","1","5","5.00","0","0" +"96","Dragon","1","11","11.00","0","0" +"97","Anna","7","44","6.29","0","0" +"98","Volker","2","16","8.00","0","0" +"99","mirj","1","7","7.00","0","0" +"100","Lonely","0","0","0.00","0","0" +"101","Christie","0","0","0.00","0","0" +"102","merlimo","0","0","0.00","0","0" +"103","Blu","0","0","0.00","0","0" +"104","Nichtbertreiber","3","30","10.00","0","0" +"105","TimSEbonn","1","2","2.00","0","0" +"106","Monty","1","15","15.00","0","0" +"107","gnom","0","0","0.00","0","0" +"108","Michael S","1","8","8.00","0","0" +"109","Ravem","0","0","0.00","0","0" +"110","Tom","1","15","15.00","0","0" +"111","send to Moderator: Ravem","1","3","3.00","0","0" +"112","mike","0","0","0.00","0","0" +"113","Franz","2","17","8.50","0","0" +"114","fred","0","0","0.00","0","0" +"115","arielle","0","0","0.00","0","0" +"116","Woopy","5","24","4.80","0","0" +"117","Uli","6","22","3.67","0","0" +"118","Trdie","2","2","1.00","0","0" +"119","MW","0","0","0.00","0","0" +"120","HHL","0","0","0.00","0","0" +"121","madddin","0","0","0.00","0","0" +"122","marcel","3","23","7.67","0","0" +"123","Steffen","2","4","2.00","0","0" +"124","ThaRoon","1","1","1.00","0","0" +"125","mark","0","0","0.00","0","0" +"126","eniac","3","26","8.67","0","0" +"127","Footix","3","31","10.33","0","0" +"128","Adi","3","28","9.33","1","0" +"129","Magic7","0","0","0.00","0","0" +"130","Duke","10","92","9.20","0","0" +"131","Hugo","0","0","0.00","0","0" +"132","maiden","0","0","0.00","0","0" +"133","pp","0","0","0.00","0","0" +"134","ich","3","29","9.67","0","0" +"135","ari","3","8","2.67","0","0" +"136","Gekko","2","11","5.50","0","0" +"137","Pitty","8","77","9.63","0","0" +"138","T|m","0","0","0.00","0","0" +"139","pepsi","1","5","5.00","0","0" +"140","Frankii","0","0","0.00","0","0" +"141","------","0","0","0.00","0","0" +"142","woluk","0","0","0.00","0","0" +"143","ghs","0","0","0.00","0","0" +"144","Anne-Sophie","6","30","5.00","0","0" +"145","Billy","0","0","0.00","0","0" +"146","Wc","0","0","0.00","0","0" +"147","Pitty+","0","0","0.00","0","0" +"148","Six","0","0","0.00","0","0" +"149","Hax","1","2","2.00","0","0" +"150","j","0","0","0.00","0","0" +"151","sindex","0","0","0.00","0","0" +"152","GUIGOU","3","6","2.00","0","0" +"","Gesamt:","601","4511","7.51","8","1" + + diff --git a/Terranet/NAMES.DAT b/Terranet/NAMES.DAT new file mode 100644 index 0000000..48f3214 --- /dev/null +++ b/Terranet/NAMES.DAT @@ -0,0 +1,152 @@ +Das Auge +martina (experte) +WC +Jojo +ronald(Experte) +IN@Cafe Mainz +IN@Cafe 2 Mainz +Tammo +RoboCop +work3@Cafe Mainz +Robi +Walter M. +Kiki +Jürgen +Superman +Frank +terranetcafe +carlotta +philipp +Lorchi +hobbes +Beate +mr. croley +Fank +TL +Ralph In@Café Mainz +Ric +Ogawoga +semikolon +Sören +Lorchi (Experte) +Martin +D-FENS +FReaKER +duke +Kent +TMD +SmokyII +mr. crowley +Elroy +Joe +Ralph +send to Moderator: Beate +Smoky +Kai +LonelyOne +Taal +arschbacke +Spiky +Lonely1 +wonderer +Thorsten +Andreas M +c2 +ökoforce +roger rabbit +pluto +Felitsche +salco +charly +Gabilein +meter +Klaas aus Mainz +send to Moderator: Das Auge +Koze +Peter +Berndd +maldoror +girl15 +Fouche +penelope +pepe +DerÖkologe +Harvey +obelix +DaKilla +fliege +TiPPeR +Andreas +Stratton +link +Jan +Tommy +Phantom +Teufel +Don Dan +Lancelot +Otto +rollsplitt +Jürgen S +hansjörg +send to Moderator: Tammo +Talimee +Bobby +overflyer +Dragon +Anna +Volker +mirj +Lonely +Christie +merlimo +Blu +Nichtübertreiber +TimSEbonn +Monty +gnom +Michael S +Ravem +Tom +send to Moderator: Ravem +mike +Franz +fred +arielle +Woopy +Uli +Tördie +MW +HHL +madddin +marcel +Steffen +ThaRoon +mark +eniac +Footix +Adi +Magic7 +Duke +Hugo +maiden +pp +ich +ari +Gekko +Pitty +T|m +pepsi +Frankii +------ +woluk +ghs +Anne-Sophie +Billy +Wc +Pitty+ +Six +Hax +j +sindex +GUIGOU diff --git a/Terranet/ORIGINAL.STA b/Terranet/ORIGINAL.STA new file mode 100644 index 0000000..f08022e --- /dev/null +++ b/Terranet/ORIGINAL.STA @@ -0,0 +1,115 @@ + + +