From b842430a7cace43abb90ac033fc8d214074e944e Mon Sep 17 00:00:00 2001 From: Stefan Koelle <50440224+skoelle@users.noreply.github.com> Date: Sat, 4 Jan 2025 18:39:33 +0100 Subject: [PATCH] Add files via upload --- SOURCE/LOGO-INT.RO/AMN.PAS | 11 ++ SOURCE/LOGO-INT.RO/COMPILE.BAT | 3 + SOURCE/LOGO-INT.RO/TCMAMN.OBJ | Bin 0 -> 64493 bytes SOURCE/LOGO-INT.RO/TCMPAL.OBJ | Bin 0 -> 827 bytes SOURCE/LOGO-INT.RO/TEXTGRAF.PAS | 323 ++++++++++++++++++++++++++++++++ SOURCE/LOGO-INT.RO/logo-int.OVL | Bin 0 -> 40700 bytes SOURCE/LOGO-INT.RO/logo-int.PAS | 257 +++++++++++++++++++++++++ SOURCE/LOGO-INT.RO/wowconst.tpu | Bin 0 -> 2144 bytes SOURCE/LOGO-INT.RO/wowtpu.tpu | Bin 0 -> 11952 bytes SOURCE/MENU-INT.RO/AMN.PAS | 11 ++ SOURCE/MENU-INT.RO/COMPILE.BAT | 4 + SOURCE/MENU-INT.RO/TCMAMN.OBJ | Bin 0 -> 64493 bytes SOURCE/MENU-INT.RO/TCMPAL.OBJ | Bin 0 -> 827 bytes SOURCE/MENU-INT.RO/TEXTGRAF.PAS | 323 ++++++++++++++++++++++++++++++++ SOURCE/MENU-INT.RO/menu-int.PAS | 234 +++++++++++++++++++++++ SOURCE/MENU-INT.RO/menu-int.RES | Bin 0 -> 69232 bytes SOURCE/MENU-INT.RO/wowconst.tpu | Bin 0 -> 2144 bytes SOURCE/MENU-INT.RO/wowtpu.tpu | Bin 0 -> 11952 bytes SOURCE/STAR-INT.RO/COMPILE.BAT | 2 + SOURCE/STAR-INT.RO/TEXTGRAF.PAS | 323 ++++++++++++++++++++++++++++++++ SOURCE/STAR-INT.RO/star-int.001 | Bin 0 -> 771 bytes SOURCE/STAR-INT.RO/star-int.002 | Bin 0 -> 64003 bytes SOURCE/STAR-INT.RO/star-int.003 | Bin 0 -> 771 bytes SOURCE/STAR-INT.RO/star-int.004 | Bin 0 -> 64003 bytes SOURCE/STAR-INT.RO/star-int.005 | Bin 0 -> 47456 bytes SOURCE/STAR-INT.RO/star-int.PAS | 186 ++++++++++++++++++ SOURCE/STAR-INT.RO/wowconst.tpu | Bin 0 -> 2144 bytes SOURCE/STAR-INT.RO/wowtpu.tpu | Bin 0 -> 11952 bytes 28 files changed, 1677 insertions(+) create mode 100644 SOURCE/LOGO-INT.RO/AMN.PAS create mode 100644 SOURCE/LOGO-INT.RO/COMPILE.BAT create mode 100644 SOURCE/LOGO-INT.RO/TCMAMN.OBJ create mode 100644 SOURCE/LOGO-INT.RO/TCMPAL.OBJ create mode 100644 SOURCE/LOGO-INT.RO/TEXTGRAF.PAS create mode 100644 SOURCE/LOGO-INT.RO/logo-int.OVL create mode 100644 SOURCE/LOGO-INT.RO/logo-int.PAS create mode 100644 SOURCE/LOGO-INT.RO/wowconst.tpu create mode 100644 SOURCE/LOGO-INT.RO/wowtpu.tpu create mode 100644 SOURCE/MENU-INT.RO/AMN.PAS create mode 100644 SOURCE/MENU-INT.RO/COMPILE.BAT create mode 100644 SOURCE/MENU-INT.RO/TCMAMN.OBJ create mode 100644 SOURCE/MENU-INT.RO/TCMPAL.OBJ create mode 100644 SOURCE/MENU-INT.RO/TEXTGRAF.PAS create mode 100644 SOURCE/MENU-INT.RO/menu-int.PAS create mode 100644 SOURCE/MENU-INT.RO/menu-int.RES create mode 100644 SOURCE/MENU-INT.RO/wowconst.tpu create mode 100644 SOURCE/MENU-INT.RO/wowtpu.tpu create mode 100644 SOURCE/STAR-INT.RO/COMPILE.BAT create mode 100644 SOURCE/STAR-INT.RO/TEXTGRAF.PAS create mode 100644 SOURCE/STAR-INT.RO/star-int.001 create mode 100644 SOURCE/STAR-INT.RO/star-int.002 create mode 100644 SOURCE/STAR-INT.RO/star-int.003 create mode 100644 SOURCE/STAR-INT.RO/star-int.004 create mode 100644 SOURCE/STAR-INT.RO/star-int.005 create mode 100644 SOURCE/STAR-INT.RO/star-int.PAS create mode 100644 SOURCE/STAR-INT.RO/wowconst.tpu create mode 100644 SOURCE/STAR-INT.RO/wowtpu.tpu diff --git a/SOURCE/LOGO-INT.RO/AMN.PAS b/SOURCE/LOGO-INT.RO/AMN.PAS new file mode 100644 index 0000000..5025bb9 --- /dev/null +++ b/SOURCE/LOGO-INT.RO/AMN.PAS @@ -0,0 +1,11 @@ +unit amn; +INTERFACE +procedure tcmamn; +procedure tcmpal; +IMPLEMENTATION +procedure tcmamn;external +{$L tcmamn.obj}; +procedure tcmpal;external +{$L tcmpal.obj}; +begin +end. \ No newline at end of file diff --git a/SOURCE/LOGO-INT.RO/COMPILE.BAT b/SOURCE/LOGO-INT.RO/COMPILE.BAT new file mode 100644 index 0000000..5e861ee --- /dev/null +++ b/SOURCE/LOGO-INT.RO/COMPILE.BAT @@ -0,0 +1,3 @@ +c:\progs\tp\tpc amn.pas +c:\progs\tp\tpc textgraf.pas +c:\progs\tp\tpc logo-int.pas diff --git a/SOURCE/LOGO-INT.RO/TCMAMN.OBJ b/SOURCE/LOGO-INT.RO/TCMAMN.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..0982a2fbcc307f211872e25f83364c6b00ea6fc0 GIT binary patch literal 64493 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 literal 0 HcmV?d00001 diff --git a/SOURCE/LOGO-INT.RO/TCMPAL.OBJ b/SOURCE/LOGO-INT.RO/TCMPAL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..6c6a1bb0658dcb04467b7ba06abf2a5b3448c9f2 GIT binary patch literal 827 zcmZWnO>fgc5PeS4WSiFM=F4`7jqRq*CQiI2cIw7S(NT@7v!6(0cmt<}IFnbg*bP8FNE)*Y5!Q{MBh% zz@H6}7)O%S!K86rj%%awF+qMv* z)oPi@vZU5jieX6CrIa*>Km`;)3Me23e82%Dz^yo@TLGxPCV4A{J7{-u3E*+f9TF&ewXGGUK$$3s# zW}OKAr|3h;O0!hlhRj`NlBr+<&QV1u0;C?)2yq|24W|qFTu!?D*T4={jv_^>pkl;R z_zoOt@cVo2wk$Wi%UG $10); { hat sich was ge„ndert ? } + end; +end; + +procedure GetVGAColors(var Colors: VGAColors); +begin + with regs do + begin + ax:= $1017; + bx:= 0; + cx:= 255; + es:= seg(Colors); + dx:= ofs(Colors); + intr($10, regs); + end; +end; + +procedure SetVGAColors(var Colors: VGAColors); +begin + with regs do + begin + ax:= $1012; + bx:= 0; + cx:= 255; + es:= seg(Colors); + dx:= ofs(Colors); + intr($10, regs); + end; +end; + +procedure NoInitStop; +begin + writeln('TextGraph ist nicht initialisiert! Benutzen Sie InitTextGraph!'); + halt(2); +end; + +procedure HercTextMode; +var i: integer; + ModeReg: byte absolute 0:$465; +const HData: array[0..13] of byte = { Timingdaten! Nicht ver„ndern! } + ($61,$50,$52,$0f,$19,$06,$19,$19,$02,$0d,$0b,$0c,0,0); +begin + port[$3bf]:= 0; { Config Reg: HalfMode: eine Seite (3 fr Full Mode) } + port[$3b8]:= $21; { Mode Control: Dunkel, Text, 80x25 } + for i:= 0 to 13 do { die Timing-Daten komplett } + begin + port[$3b4]:= i; { Index Laden (Register einblenden) } + port[$3b5]:= HData[i]; { Wert schreiben } + end; + port[$3b8]:= $29; { ModeControl: Hell, Text, 80x25 } + ModeReg:= $29; { im BIOS-Ram protokollieren } +end; + +procedure HercGraphMode; +var i: integer; + ModeReg: byte absolute 0:$465; +const HData: array[0..13] of byte = { Timingdaten! Nicht ver„ndern! } + ($35,$2d,$2e,$07,$5b,$02,$57,$57,$02,$03,0,0,0,0); +begin + port[$3bf]:= 1; { Config Reg: HalfMode: eine Seite (3 fr Full Mode) } + port[$3b8]:= 2; { Mode Control: Dunkel, Grafik, Seite 0 } + for i:= 0 to 13 do { die Timing-Daten komplett } + begin + port[$3b4]:= i; { Index Laden (Register einblenden) } + port[$3b5]:= HData[i]; { Wert schreiben } + end; + port[$3b8]:= $0a; { ModeControl: Hell, Grafik, Seite 0 } + ModeReg:= $0a; { im BIOS-Ram protokollieren } +end; + +procedure GrafikMode(Mode: byte); { Setzt den Videomodus, nur fr Demo } +var i: integer; +begin + if VMonitor <> Hercules then { alle auáer Hercules sind sehr einfach } + with regs do + begin + AX:= Mode; { AH:= 0; AL:= Mode } + Intr($10, regs); + end + else + begin + HercGraphMode; + fillchar(ptr($B000,0)^, $8000, 0); { Clearscreen } + end; +end; + +function GetMonTyp: MonitorTyp; { Zugriffsfunktion, nur fr das Demo } +begin + GetMonTyp:= VMonitor; +end; + +procedure ToTextVGA; { sichert den Teil des Grafik-Bildspeichers, der } +var b: byte; { vom Zeichengenerator berschrieben wird } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3ce]:= 4; { Read Map Select holen } + b:= Port[$3cf]; { lesen } + Port[$3cf]:= 2; { Plane 2 ein } + CGBuf^:= CharGen; { Grafikinhalt von Zeichengenerator sichern } + Port[$3cf]:= b; { Wert zurck } +end; + +procedure ToTextEGA; { wie oben jedoch Variante fr EGA, } +var b: byte; { deren Register nicht lesbar sind } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3ce]:= 4; { Read Map Select holen } + Port[$3cf]:= 2; { Plane 2 ein } + CGBuf^:= CharGen; { Grafikinhalt von Zeichengenerator sichern } + Port[$3cf]:= 0; { Default zurck } +end; + +procedure ToGraphVGA; { berschreibt den Zeichengenerator mit } +var b: byte; { gesicherten Grafikinhalt } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3C4]:= 2; { Map Mask Register holen } + b:= Port[$3c5]; { lesen } + Port[$3c5]:= 4; { Plane 2 ein } + CharGen:= CGBuf^; { Zeichengenerator zurck } + Port[$3c5]:= b; { Wert zurck } +end; + +procedure ToGraphEGA; { wie oben jedoch Variante fr EGA, } +var b: byte; { deren Register nicht lesbar sind } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3C4]:= 2; { Map Mask Register holen } + Port[$3c5]:= 4; { Plane 2 ein } + CharGen:= CGBuf^; { Zeichengenerator kopieren } + Port[$3c5]:= 0; { Default zurck } +end; + +function InitTextGraf: integer; { ermittelt Monitor, setzt Variablen, } +begin { reserviert Speicher } + InitTextGraf:= 0; + if ModeNr <> $FF then exit; { wurde schon aufgerufen, alles ok } + InitTextGraf:= -1; { Fehlervorgabe: falsche Karte } + if IsEGA then VMonitor:= EGA; { EGA ? } + if IsVGA then VMonitor:= VGA; { oder VGA ? } + TMode:= BMode and $7f; + if TMode = 7 then + begin + TScreen:= ptr($B000,0); { Bildspeicheradresse Text mono setzen } + if VMonitor = other then { keines von beiden: } + begin + VMonitor:= Hercules; { dann Hercules, (evtl Probleme mit CGA-Mono)} + GMode:= 7; { Modi alle 7 } + end; + end else + TScreen:= ptr($B800,0); { Bildspeicheradresse Text farbig setzen } + if VMonitor = other then exit; { was anderes? geht nicht! } + InitTextGraf:= 1; { Fehlervorgabe: kein Speicher } + if VMonitor in [EGA, VGA] then + begin { Vorgaben fr EGA & VGA } + GMode:= $10; { Grafik 640x350 } + if MaxAvail >= sizeof(CGBuf) then { Speicher fr Puffer belegen } + New(CGBuf) + else + exit; { raus mit Fehler 1 } + end; + if MaxAvail >= sizeof(ScrBuf) then { noch mehr } + New(ScrBuf) + else + exit; { raus mit Fehler 1 } + ModeNr:= TMode; { Initialisierung merken } + InitTextGraf:= 0; { alles ok } +end; + +procedure SetPaletteSave(On: boolean); + { aktiviert oder deaktiviert die automatische Palettensicherung } +begin + if ModeNr = $FF then NoInitStop; { schon Init ? } + if On then + begin + if VGATextPal = nil then { gibts schon ? } + new(VGATextPal); { nein, neu } + if VGAGraphPal = nil then { dito Grafikpalette } + new(VGAGraphPal); + GetVGAColors(VGATextPal^); { Textfarben holen } + end else + begin + if VGATextPal <> nil then { was da ? } + begin + dispose(VGATextPal); { freigeben } + VGATextPal:= nil; { und kennzeichnen } + end; + if VGAGraphPal <> nil then { andere auch } + begin + dispose(VGAGraphPal); + VGAGraphPal:= nil; + end; + end; +end; + +procedure ToText; { Schaltet in Textmodus, bringt, was berschrieben } +begin { wird in Sicherheit } + if ModeNr = $FF then NoInitStop; { schon Init ? } + GMode:= BMode; { Grafikmodus merken } + case VMonitor of + VGA: begin + if VGAGraphPal <> nil then + GetVGAColors(VGAGraphPal^); + ToTextVGA; { Zeichengeneratorbereich sichern } + end; + EGA: ToTextEGA; + end; {case} + if VMonitor = Hercules then + HercTextMode { Hercules Textmodus ohne Bildspeicher l”schen } + else + begin + regs.ax:= TMode or $80; { Text, Bit 7 = 1: Bildspeicher nicht l”schen } + intr($10, regs); + if (VMonitor = VGA) and (VGATextPal <> nil) then + SetVGAColors(VGATextPal^); + end; + scrbuf^:= TScreen^; { Grafikinhalt von Textschirm sichern } + VModus:= Text; +end; + +procedure ToGraph; { versucht den Grafikmodus zu restaurieren } +begin + if ModeNr = $FF then NoInitStop; { schon Init ? } + TMode:= BMode; + TScreen^:= ScrBuf^; { Grafikinhalt zurck in Textbildschirm fllen } + case VMonitor of + VGA: begin + if VGATextPal <> nil then + GetVGAColors(VGATextPal^); + ToGraphVGA; { dito Zeichengenerator } + end; + EGA: ToGraphEGA; + end; {case} + if VMonitor = Hercules then + HercGraphMode { Hercules handmade Grafikmodus } + else + begin + regs.ax:= GMode or $80; { Text, Bit 7 = 1: Bildspeicher nicht l”schen } + intr($10, regs); + if (VMonitor = VGA) and (VGAGraphPal <> nil) then + SetVGAColors(VGAGraphPal^); + end; + VModus:= Grafik; +end; + +end. diff --git a/SOURCE/LOGO-INT.RO/logo-int.OVL b/SOURCE/LOGO-INT.RO/logo-int.OVL new file mode 100644 index 0000000000000000000000000000000000000000..edcb37da45cda305c73e7f366745d6844a9c9923 GIT binary patch literal 40700 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 literal 0 HcmV?d00001 diff --git a/SOURCE/LOGO-INT.RO/logo-int.PAS b/SOURCE/LOGO-INT.RO/logo-int.PAS new file mode 100644 index 0000000..bb31469 --- /dev/null +++ b/SOURCE/LOGO-INT.RO/logo-int.PAS @@ -0,0 +1,257 @@ +{$A-,B-,D-,E-,F-,G-,I-,L-,N-,O-,R-,S-,V-,X-} +{$M 16384,0,655360} +uses crt,textgraf,WOWTPU,WOWCONST,amn; +type + lpi = array[0..2] of byte; + lp = array[0..255] of lpi; +var + speed:integer; + k,i,j,x,y,anz,h1,h2,texti : integer; + l : lp; + p : vgacolors; + s : string; + ch:char; + textp:boolean; + font : array[0..80, 0..7, 0..7] of byte; + font2: array[0..80,0..15,0..15] of byte; + SBPort: word; + flag:integer; + lint:longint; +const text:array[1..15] of string = (''' TCM PRESENTS ''', + ''' A NEW INTRO ''', + '''CODE/GFX/MUSIC BY ''', + ''' STEFAN KOELLE ''', + ''' RELEASED 1993 ''', + ''' IN TURBO PASCAL ''', + ''' AND ASSEMBLER ''', + ''' GREETINGS TO ''', + '''MATTHIAS AND MAJIC''', + ''' AND MILKRUN ''', + ''' INTRO KEYS ARE: ''', + ''' VOLUMECONTROL: ''', + ''' PLUS AND MINUS ''', + '''SPEEDCTRL: S AND A''', + ''' BYE BYE '''); +procedure writeline(wlx,wly : integer; wls : string); +var i,x,y:integer; +begin + for i:=1 to length(wls) do begin + for x:=0 to 7 do begin + for y:=0 to 7 do begin + if ord(wls[i])<>32 then + mem[$A000: (wly+y) * word(320) + wlx+x+(i-1)*8]:=font[ord(wls[i])-32,x,y] + end; + end; + end; +end; +procedure writeline2(wlx,wly : integer; wls : string); +var i,x,y:integer; +begin + for i:=1 to length(wls) do begin + for x:=0 to 15 do begin + for y:=0 to 15 do begin + if ord(wls[i])=32 then wls[i]:='*'; + mem[$A000: (wly+y) * word(320) + wlx+x+(i-1)*16]:=font2[ord(wls[i])-32,x,y] + end; + end; + end; +end; +procedure CLI; inline( $FA ); { Interrupts unterdrcken } +procedure STI; inline( $FB ); { Interrupts wieder erlauben } +begin + CLI; + case InitTextGraf of + 1: begin end; + end; + GrafikMode($13); + for i:=0 to 31999 do begin + mem[$A000:i]:=0; + end; + for i:=0 to 31999 do begin + mem[$A000:i+32000]:=0; + end; + for i:=0 to 255 do begin + for j:=0 to 2 do begin + p[i,j]:=0; + end; + end; + setvgacolors(p); + for i:=0 to 31999 do + begin + mem[$A000: i]:= mem[seg(tcmamn): ofs(tcmamn)+i+3]; + end; + for i:=0 to 31999 do + begin + mem[$A000: i+32000]:= mem[seg(tcmamn): ofs(tcmamn)+i+3+32000]; + end; + for j:=0 to 1 do begin + for i:=0 to 39 do begin + for x:=0 to 7 do begin + for y:=0 to 7 do begin + font[i+j*40,x,y]:= mem[$A000: (y+j*8+81) * word(320) + x+i*8]; + end; + end; + end; + end; + for j:=0 to 2 do begin + for i:=0 to 19 do begin + for x:=0 to 15 do begin + for y:=0 to 15 do begin + font2[i+j*20,x,y]:= mem[$A000: (y+j*16+99) * word(320) + x+i*16]; + end; + end; + end; + end; + + move(mem[seg(tcmpal): ofs(tcmpal)],l,sizeof(l)); + for i:=0 to 79 do begin + move(mem[$A000:320*(80-i)],mem[$A000:320*(80-i+50)],320); + end; + for i:=0 to 50 do + for j:=0 to 319 do + mem[$A000:i*320+j]:=0; + for i:=130 to 199 do + for j:=0 to 319 do + mem[$A000:i*320+j]:=0; + for j:=0 to 2 do p[0,j]:=l[1,j]; + for x:=1 to 80 do begin + for i:=1 to 255 do + begin + for j:=0 to 2 do + begin + if p[i,j] Keine Soundblaster *) + SBPort:=$42; (* Lautsprecherausgabe *) + end; + if SBPort=$42 then begin + flag:=doit('logo-int.ovl',sbport,0,21000); + end else begin + flag:=doit('logo-int.ovl',sbport,0,12000); + end; + + writeline(65,60,' = TRANCEMISSION = '); + writeline(65,68,' = PROUDLY PRESENTS = '); + writeline(65,76,' ---------------------- '); + writeline(65,84,' THE LOGO INTRO '); + writeline(65,100,' CODE GFX MUSIC BY '); + writeline(65,108,' STEFAN KOELLE '); + writeline(65,124,' RELEASED 1993 '); + writeline(65,132,' ON PC 486 DX 50 '); + + writeline(65,52,'************************'); + writeline(65,140,'************************'); + for i:=1 to 11 do writeline(65,52+(8*i),'* *'); + + writeline2(0,185,text[1]); +{ mem[$A000:round(sin(i*6)*90)+320*(50+i)+150]:=66;} + x:=0; + ch:='A'; + speed:=1; + texti:=1; + ledz:=10000; + repeat + inc(x,speed); + if x>375 then x:=1; + y:=round(sin(x*6.3)*30)+50; + for i:=7 to 16 do begin + h1:=(i+140-y)*320; + h2:=(-i+155-y)*320; + for j:=0 to 63 do begin + if i=16 then begin + mem[$A000:h1+j]:=0; + mem[$A000:h2+j]:=0; + end else begin + mem[$A000:h1+j]:=i+31; + mem[$A000:h2+j]:=i+31; + end; + end; + for j:=319-60 to 319 do begin + if i=16 then begin + mem[$A000:h1+j]:=0; + mem[$A000:h2+j]:=0; + end else begin + mem[$A000:h1+j]:=i+31; + mem[$A000:h2+j]:=i+31; + end; + end; + end; + if textp and (ledz<10000) then begin + inc(texti); + writeline2(0,185,text[texti]); + if texti>=15 then texti:=0; + textp:=false; + end; + if (ledz>10000) and (not textp) then textp:=true; + if keypressed then begin + ch:=readkey; + case ch of + 's','S':begin + inc(speed); + if speed>20 then speed:=20; + end; + 'a','A':begin + dec(speed); + if speed<1 then speed:=1; + end; + '+':begin + lint:=volume; + inc(lint,5); + if lint>256 then volume:=256 else volume:=lint; + end; + '-':begin + lint:=volume; + dec(lint,5); + if lint<0 then volume:=0 else volume:=lint; + end; + end; + end; + until (ch=#27) or (ch=#13) or (ch=' '); + endit; + CLI; + i:=0;j:=155; + repeat + inc(i);dec(j); + move(mem[$A000:320*(i-1)],mem[$A000:320*i],320*50); + move(mem[$A000:320*181],mem[$A000:320*(i-1)],320); + move(mem[$A000:320*(j+1)],mem[$A000:320*j],320*30); + for x:=1 to 3 do begin + for y:=1 to 16 do begin + mem[$A000:320*(200-y)+x+(i-1)*3]:=0; + mem[$A000:320*(200-y)+319-(x+(i-1)*3)]:=0; + end;end; + until i>=53; + STI; + for x:=1 to 80 do begin + for i:=0 to 255 do + begin + for j:=0 to 2 do + begin + if p[i,j]>0 then dec(p[i,j]); + end; + end; + setvgacolors(p); + end; + for i:=0 to 31999 do begin + mem[$A000:i]:=0; + end; + for i:=0 to 31999 do begin + mem[$A000:i+32000]:=0; + end; + TEXTMODE(co80); +end. \ No newline at end of file diff --git a/SOURCE/LOGO-INT.RO/wowconst.tpu b/SOURCE/LOGO-INT.RO/wowconst.tpu new file mode 100644 index 0000000000000000000000000000000000000000..ad128ea60e5f85ffc0a7930c68474fe428e6d13f GIT binary patch literal 2144 zcmb_dTWl0n7(V~ZUZ(dJON-a46a|E`-QJOcv%9m~b+@zAGqabj5AsAz6JJzJ6C2u`H`;llTqq|Cw(ALz`|G;OIUjN7UC){o;`x*Q5HeEA7F;W%CZo|mU}e-P zNY679#N!UrRnack%wH?MUU-q{MUVXlU`LF>F>wy+gL>#cf;<)E7$r+q3o@JGl+$Vo zGFmmQnY<-wXD|SgN8Ci&k{;~>bye^j9bFbYj!Hv;s<{=`;x%o)$)*?W6ssG)(QrLe zdQQP*?rd3wN6iFS-))H(Ae?B`$|h$lo4rU)%?TH+ge92>slAeVI-RB=cr$kyg)?nL zWh~-(#K2+h;Vf5%M$r$-8&OQ0#+xWNp}Z!WD6UP>p}h@Co0+41P=m~&yp^ib{)WAs z3A30^7p;7ro@f{%*mG$WDA5!=Td)h142aK28X0M((|I#PsfJgZo0OJiC-SD9Bdfu; zrlmEPoH1>zm3M$=^ash7oN1eRl_Ud}w`xI?5yj5aOhBP1ZCM*LGLv4mWKlLq@R25? zWm9JDtVd4<9DF+zS97Oa!(zDRtfNND2jnG^y0l7!1753A*i5DDD%oJ_$2(b3QGA<& zT1K5@#WrUxlHdkIIP#j>b7<_v``aSs(95H@3HAymTgjX1nw$b(;g}F#7!`*`9UP@{ z9n!F0)TAM;%&eKoCg~JhR&E=}s1MW<4D=H0S9IBeAlE}-GW02;F5VWky&knAi24Hd zbzK?-=^r7`wY9t2j7x$CVnjOl7=M7-;W}eoJbSSLutW&H3s^quSJbM6=vEfr#@(hj zCU{zq^3ro}_P5s_pCQL|1r4rgn)vn@?%;RF*4Ihg2yH;FtghecD=()b%Ozu5mw4qj zA(n5xeiSu-hm)_YijBTw-p)^0@T(=nhMd`=Wk>e%f)z$TNYQYrsqLk(y(=yinZ2-gv5AnLvA2%Lo3O8e=?3;U;lS-M-Y9*2^4!N~J{0Qty`##;hT|in zW8)K(Q)VKWviv_2j{K4D$dG7@oq&u(E<#R29)!$6#vq@9JPo<*KN8|C=oRSiL$d#A J$b*n)#lKZ!bm;&9 literal 0 HcmV?d00001 diff --git a/SOURCE/LOGO-INT.RO/wowtpu.tpu b/SOURCE/LOGO-INT.RO/wowtpu.tpu new file mode 100644 index 0000000000000000000000000000000000000000..c9a6088c046dd0ed5cdcd733c3408dfb3eb0743e GIT binary patch literal 11952 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 Xha8VTF>pJH=8D`KD~0tLI4Ax$a4{ba literal 0 HcmV?d00001 diff --git a/SOURCE/MENU-INT.RO/AMN.PAS b/SOURCE/MENU-INT.RO/AMN.PAS new file mode 100644 index 0000000..5025bb9 --- /dev/null +++ b/SOURCE/MENU-INT.RO/AMN.PAS @@ -0,0 +1,11 @@ +unit amn; +INTERFACE +procedure tcmamn; +procedure tcmpal; +IMPLEMENTATION +procedure tcmamn;external +{$L tcmamn.obj}; +procedure tcmpal;external +{$L tcmpal.obj}; +begin +end. \ No newline at end of file diff --git a/SOURCE/MENU-INT.RO/COMPILE.BAT b/SOURCE/MENU-INT.RO/COMPILE.BAT new file mode 100644 index 0000000..05508c0 --- /dev/null +++ b/SOURCE/MENU-INT.RO/COMPILE.BAT @@ -0,0 +1,4 @@ +c:\progs\tp\tpc amn.pas +c:\progs\tp\tpc textgraf.pas +c:\progs\tp\tpc menu-int.pas + diff --git a/SOURCE/MENU-INT.RO/TCMAMN.OBJ b/SOURCE/MENU-INT.RO/TCMAMN.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..505ae5f098aadf967cbf1cc2754545a2619c68f5 GIT binary patch literal 64493 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 literal 0 HcmV?d00001 diff --git a/SOURCE/MENU-INT.RO/TCMPAL.OBJ b/SOURCE/MENU-INT.RO/TCMPAL.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..ab0dedde922f7bf2a5d3b9a3d04238cffc0abd53 GIT binary patch literal 827 zcmdsz!AiqG5QcY}60>YvGEhQ7!;oSLk%YCDiR1{APuMks4Z#)jj_>a1WN|B$w{0H zp`ob-Ya^DlZ5SaA-iKmQ$u-&-5p$s2P#z#@D_hP`PV;8_FQoSk=FCn+Z^*=^V{I3_0vUOL`fN)Xr$Gz^C|1c?kSlRJ(z zTV{e_Or12~PP~AF7qb*^B%mmmS^oEU#PN9X|4@4Gd%r09Dygcf_i43I+58Vj6aV$v ouU5Wa`F7#wy|3GKJzrFHUsUa+sIy6xWks51Ns@lQj+A=-0Xg(K0RR91 literal 0 HcmV?d00001 diff --git a/SOURCE/MENU-INT.RO/TEXTGRAF.PAS b/SOURCE/MENU-INT.RO/TEXTGRAF.PAS new file mode 100644 index 0000000..118cd7c --- /dev/null +++ b/SOURCE/MENU-INT.RO/TEXTGRAF.PAS @@ -0,0 +1,323 @@ + unit TextGraf; +interface +uses dos; +type + MonitorTyp = (Hercules, EGA, VGA, other); + VGAColorInfo = array[0..2] of byte; { eine VGA-Farbe: nur fr Demo } + VGAColors = array[0..255] of VGAColorInfo; { alle VGA-Farben: dito } + + function InitTextGraf: integer; + { Muá ganz zu Anfang des Programms, noch im Textmodus aufgerufen + werden. Ohne das funktioniert der Rest nicht. Ergebnis 0: Alles Ok, + unbekannter Videotyp: -1, zuwenig Speicher: 1 (Bedarf ca. 12Kb) } + procedure SetPaletteSave(On: boolean); + { Mit On = true nach InitTextGraf und im Textmodus aufrufen. Sichert die + Textpalette und reserviert Speicher fr die Grafikpalette, die dann + automatisch verwendet werden. On = false schaltet diese Automatik + wieder ab und gibt den Speicher fr die Paletten (ca. 1.5Kb) frei.} + procedure ToText; + { Schaltet vom Grafik- in den Testmodus. Bildspeicher etc. werden in + Sicherheit gebracht } + procedure ToGraph; + { Schaltet in die Grafik zurck. Vorher sollte ein Grafikmodus mit + ToText verlassen worden sein, um alle Werte zu initialisieren } + + procedure GrafikMode(Mode: byte); + { nur fr das Demoprogramm. Kann gel”scht werden, wenn BGI-Routinen + (InitGraph) verwendet werden } + function GetMonTyp: MonitorTyp; + { dito } + procedure SetVGAColors(var Colors: VGAColors); + { dito } +implementation + + +type + ScreenArray = array[0..3999] of word; { Bildspeicher bei 80x25 } + CharGenArray = array[0..8191] of byte; { Zeichengenerator } + ModeType = (Text, Grafik, unknown); + +var + regs: registers; { fr intr } + CharGen: CharGenArray absolute $A000:0; { Adresse Zeichengenerator } + BMode: byte absolute $40:$49; { Bios-Videomode } + +const + VModus: ModeType = unknown; + VMonitor: MonitorTyp = other; { Vorgabe: nichts gutes } + TScreen: ^ScreenArray = nil; { zeigt in den Bildspeicher } + ScrBuf: ^ScreenArray = nil; { speichert Textschirm zwischen } + CGBuf: ^CharGenArray = nil; { speichert Zeichengenerator } + ModeNr: byte = $FF; { Kennung fr Init } + TMode: byte = $FF; { der zu restaurierende Textmodus } + GMode: byte = $FF; { dito Grafikmodus } + VGATextPal: ^VGAColors = nil; + VGAGraphPal: ^VGAColors = nil; + +function IsVga: boolean; { haben wir VGA } +begin + with regs do + begin + AX:= $1A00; { Display Combination abfragen } + Intr($10, regs); + IsVga:= (AL = $1A); { gltiger Aufruf } + end; +end; + +function IsEGA: boolean; { liegt wenigstens EGA vor } +begin + with regs do + begin + AH:= $12; { Funktion $12 } + BL:= $10; { get EGA Information } + Intr($10, regs); + IsEga:= (BL <> $10); { hat sich was ge„ndert ? } + end; +end; + +procedure GetVGAColors(var Colors: VGAColors); +begin + with regs do + begin + ax:= $1017; + bx:= 0; + cx:= 255; + es:= seg(Colors); + dx:= ofs(Colors); + intr($10, regs); + end; +end; + +procedure SetVGAColors(var Colors: VGAColors); +begin + with regs do + begin + ax:= $1012; + bx:= 0; + cx:= 255; + es:= seg(Colors); + dx:= ofs(Colors); + intr($10, regs); + end; +end; + +procedure NoInitStop; +begin + writeln('TextGraph ist nicht initialisiert! Benutzen Sie InitTextGraph!'); + halt(2); +end; + +procedure HercTextMode; +var i: integer; + ModeReg: byte absolute 0:$465; +const HData: array[0..13] of byte = { Timingdaten! Nicht ver„ndern! } + ($61,$50,$52,$0f,$19,$06,$19,$19,$02,$0d,$0b,$0c,0,0); +begin + port[$3bf]:= 0; { Config Reg: HalfMode: eine Seite (3 fr Full Mode) } + port[$3b8]:= $21; { Mode Control: Dunkel, Text, 80x25 } + for i:= 0 to 13 do { die Timing-Daten komplett } + begin + port[$3b4]:= i; { Index Laden (Register einblenden) } + port[$3b5]:= HData[i]; { Wert schreiben } + end; + port[$3b8]:= $29; { ModeControl: Hell, Text, 80x25 } + ModeReg:= $29; { im BIOS-Ram protokollieren } +end; + +procedure HercGraphMode; +var i: integer; + ModeReg: byte absolute 0:$465; +const HData: array[0..13] of byte = { Timingdaten! Nicht ver„ndern! } + ($35,$2d,$2e,$07,$5b,$02,$57,$57,$02,$03,0,0,0,0); +begin + port[$3bf]:= 1; { Config Reg: HalfMode: eine Seite (3 fr Full Mode) } + port[$3b8]:= 2; { Mode Control: Dunkel, Grafik, Seite 0 } + for i:= 0 to 13 do { die Timing-Daten komplett } + begin + port[$3b4]:= i; { Index Laden (Register einblenden) } + port[$3b5]:= HData[i]; { Wert schreiben } + end; + port[$3b8]:= $0a; { ModeControl: Hell, Grafik, Seite 0 } + ModeReg:= $0a; { im BIOS-Ram protokollieren } +end; + +procedure GrafikMode(Mode: byte); { Setzt den Videomodus, nur fr Demo } +var i: integer; +begin + if VMonitor <> Hercules then { alle auáer Hercules sind sehr einfach } + with regs do + begin + AX:= Mode; { AH:= 0; AL:= Mode } + Intr($10, regs); + end + else + begin + HercGraphMode; + fillchar(ptr($B000,0)^, $8000, 0); { Clearscreen } + end; +end; + +function GetMonTyp: MonitorTyp; { Zugriffsfunktion, nur fr das Demo } +begin + GetMonTyp:= VMonitor; +end; + +procedure ToTextVGA; { sichert den Teil des Grafik-Bildspeichers, der } +var b: byte; { vom Zeichengenerator berschrieben wird } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3ce]:= 4; { Read Map Select holen } + b:= Port[$3cf]; { lesen } + Port[$3cf]:= 2; { Plane 2 ein } + CGBuf^:= CharGen; { Grafikinhalt von Zeichengenerator sichern } + Port[$3cf]:= b; { Wert zurck } +end; + +procedure ToTextEGA; { wie oben jedoch Variante fr EGA, } +var b: byte; { deren Register nicht lesbar sind } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3ce]:= 4; { Read Map Select holen } + Port[$3cf]:= 2; { Plane 2 ein } + CGBuf^:= CharGen; { Grafikinhalt von Zeichengenerator sichern } + Port[$3cf]:= 0; { Default zurck } +end; + +procedure ToGraphVGA; { berschreibt den Zeichengenerator mit } +var b: byte; { gesicherten Grafikinhalt } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3C4]:= 2; { Map Mask Register holen } + b:= Port[$3c5]; { lesen } + Port[$3c5]:= 4; { Plane 2 ein } + CharGen:= CGBuf^; { Zeichengenerator zurck } + Port[$3c5]:= b; { Wert zurck } +end; + +procedure ToGraphEGA; { wie oben jedoch Variante fr EGA, } +var b: byte; { deren Register nicht lesbar sind } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3C4]:= 2; { Map Mask Register holen } + Port[$3c5]:= 4; { Plane 2 ein } + CharGen:= CGBuf^; { Zeichengenerator kopieren } + Port[$3c5]:= 0; { Default zurck } +end; + +function InitTextGraf: integer; { ermittelt Monitor, setzt Variablen, } +begin { reserviert Speicher } + InitTextGraf:= 0; + if ModeNr <> $FF then exit; { wurde schon aufgerufen, alles ok } + InitTextGraf:= -1; { Fehlervorgabe: falsche Karte } + if IsEGA then VMonitor:= EGA; { EGA ? } + if IsVGA then VMonitor:= VGA; { oder VGA ? } + TMode:= BMode and $7f; + if TMode = 7 then + begin + TScreen:= ptr($B000,0); { Bildspeicheradresse Text mono setzen } + if VMonitor = other then { keines von beiden: } + begin + VMonitor:= Hercules; { dann Hercules, (evtl Probleme mit CGA-Mono)} + GMode:= 7; { Modi alle 7 } + end; + end else + TScreen:= ptr($B800,0); { Bildspeicheradresse Text farbig setzen } + if VMonitor = other then exit; { was anderes? geht nicht! } + InitTextGraf:= 1; { Fehlervorgabe: kein Speicher } + if VMonitor in [EGA, VGA] then + begin { Vorgaben fr EGA & VGA } + GMode:= $10; { Grafik 640x350 } + if MaxAvail >= sizeof(CGBuf) then { Speicher fr Puffer belegen } + New(CGBuf) + else + exit; { raus mit Fehler 1 } + end; + if MaxAvail >= sizeof(ScrBuf) then { noch mehr } + New(ScrBuf) + else + exit; { raus mit Fehler 1 } + ModeNr:= TMode; { Initialisierung merken } + InitTextGraf:= 0; { alles ok } +end; + +procedure SetPaletteSave(On: boolean); + { aktiviert oder deaktiviert die automatische Palettensicherung } +begin + if ModeNr = $FF then NoInitStop; { schon Init ? } + if On then + begin + if VGATextPal = nil then { gibts schon ? } + new(VGATextPal); { nein, neu } + if VGAGraphPal = nil then { dito Grafikpalette } + new(VGAGraphPal); + GetVGAColors(VGATextPal^); { Textfarben holen } + end else + begin + if VGATextPal <> nil then { was da ? } + begin + dispose(VGATextPal); { freigeben } + VGATextPal:= nil; { und kennzeichnen } + end; + if VGAGraphPal <> nil then { andere auch } + begin + dispose(VGAGraphPal); + VGAGraphPal:= nil; + end; + end; +end; + +procedure ToText; { Schaltet in Textmodus, bringt, was berschrieben } +begin { wird in Sicherheit } + if ModeNr = $FF then NoInitStop; { schon Init ? } + GMode:= BMode; { Grafikmodus merken } + case VMonitor of + VGA: begin + if VGAGraphPal <> nil then + GetVGAColors(VGAGraphPal^); + ToTextVGA; { Zeichengeneratorbereich sichern } + end; + EGA: ToTextEGA; + end; {case} + if VMonitor = Hercules then + HercTextMode { Hercules Textmodus ohne Bildspeicher l”schen } + else + begin + regs.ax:= TMode or $80; { Text, Bit 7 = 1: Bildspeicher nicht l”schen } + intr($10, regs); + if (VMonitor = VGA) and (VGATextPal <> nil) then + SetVGAColors(VGATextPal^); + end; + scrbuf^:= TScreen^; { Grafikinhalt von Textschirm sichern } + VModus:= Text; +end; + +procedure ToGraph; { versucht den Grafikmodus zu restaurieren } +begin + if ModeNr = $FF then NoInitStop; { schon Init ? } + TMode:= BMode; + TScreen^:= ScrBuf^; { Grafikinhalt zurck in Textbildschirm fllen } + case VMonitor of + VGA: begin + if VGATextPal <> nil then + GetVGAColors(VGATextPal^); + ToGraphVGA; { dito Zeichengenerator } + end; + EGA: ToGraphEGA; + end; {case} + if VMonitor = Hercules then + HercGraphMode { Hercules handmade Grafikmodus } + else + begin + regs.ax:= GMode or $80; { Text, Bit 7 = 1: Bildspeicher nicht l”schen } + intr($10, regs); + if (VMonitor = VGA) and (VGAGraphPal <> nil) then + SetVGAColors(VGAGraphPal^); + end; + VModus:= Grafik; +end; + +end. diff --git a/SOURCE/MENU-INT.RO/menu-int.PAS b/SOURCE/MENU-INT.RO/menu-int.PAS new file mode 100644 index 0000000..5944aea --- /dev/null +++ b/SOURCE/MENU-INT.RO/menu-int.PAS @@ -0,0 +1,234 @@ +uses WOWCONST, WOWTPU,crt,textgraf,amn; +type + lpi = array[0..2] of byte; + lp = array[0..256] of lpi; +const col=30; +var + f : file; + k,i,j,x,y,men,mm : integer; + n,m : word; + b : byte; + l : lp; + p : vgacolors; + s : string; + c : array[0..130] of byte; + ch:char; + logo:array[0..80,0..240] of char; + SBPort: word; + flag:integer; + sinus:array[0..120] of integer; + bo,ende:boolean; + font : array[0..80, 0..7, 0..7] of byte; + leer:array[1..8*320] of char; +CONST text:array[1..18] of string=('TRANCEMISSION PRESENTS','OUR NEW MENU INTRO', + 'CODE AND GFX BY STEFAN KOELLE', + 'RELEASE 1992 ON DOS PC', + 'THIS COULD BE USED BEFORE DEMOS', + 'TO CHANGE SETTINGS OF THE DEMO', + 'MENU WAS NEVER COMPLETED', + 'CODED IN TURBO PASCAL', + 'AND INLINE ASSEMBLER', + 'BY STEFAN KOELLE', + 'LOGO AND FONT ALSO DESIGNED', + 'BY STEFAN KOELLE', + 'GREETINGS TO THE FOLLOWING', + 'MATTHIAS, MILKRUN, MAJIC', + 'MANY THANKS FOR READING THIS FAR', + 'STILL READING, YEAH', + 'REALLY PROUD OF IT', + '... TAKE CARE AND ENJOY ...'); + menu:array[1..3] of string=(' TOGGLE: YES', + ' OPTION MENU ITEM', + ' EXIT'); +function Key : boolean; +var flag : boolean; +begin + asm + mov Flag,0 + in al,$60 + test al,128 + jne @@KeineTaste + mov Flag,1 + @@KeineTaste: + end; + Key:=Flag; +end; +procedure writeline(wlx,wly : integer; wls : string); +var i,x,y:integer; +begin + for i:=1 to length(wls) do begin + if ord(wls[i])<>32 then begin + for x:=0 to 7 do begin + for y:=0 to 7 do begin + if font[ord(wls[i])-64+32,x,y]<>0 then + mem[$A000: (wly+y) * word(320) + wlx+x+(i-1)*8]:=font[ord(wls[i])-64+32,x,y] + end; + end; + end; + end; +end; +begin + DirectVideo:= false; + case InitTextGraf of + -1: begin + writeln(' Dieses Programm l„uft auf Ihrer Grafikkarte leider nicht!'); + halt(1); + end; + 1: begin + writeln(' Zu wenig Speicher!'); + halt(2); + end; + end; + GrafikMode($13); + for i:=0 to 255 do + begin + for j:=0 to 2 do + begin + p[i,j]:=0; + end; + end; + setvgacolors(p); + for i:=0 to 31999 do + begin + mem[$A000: i]:= mem[seg(tcmamn): ofs(tcmamn)+i+3]; + end; + for i:=0 to 31999 do + begin + mem[$A000: i+32000]:= mem[seg(tcmamn): ofs(tcmamn)+i+3+32000]; + end; + for i:=0 to 80 do + move(mem[$A000:320*i+43],logo[i],240); + for j:=0 to 1 do begin + for i:=0 to 39 do begin + for x:=0 to 7 do begin + for y:=0 to 7 do begin + font[i+j*40,x,y]:= mem[$A000: (y+j*8+98) * word(320) + x+i*8]; + end; + end; + end; + end; + SBPort:=IdentifySB; + if SBPort=0 then begin (* bei IdentifySB=0 -> Keine Soundblaster *) + SBPort:=$42; (* Lautsprecherausgabe *) + end; + for i:=1 to paramcount do if paramstr(i)='-p' then SBPort:=$42; + for i:=0 to 31999 do + mem[$A000:i]:=0; + for i:=0 to 31999 do + mem[$A000:i+32000]:=0; + for i:=0 to 320 do + sinus[i]:=round(sin(Pi/24*i+1)*5)+46; (* round(sin(i*6.2)*5)+46 *) + move(mem[$A000:191*320],leer,8*320); + + move(mem[seg(tcmpal): ofs(tcmpal)],l,sizeof(l)); + for i:=0 to 255 do + begin + for j:=0 to 2 do + begin + p[i,j]:=l[i,j]; + end; + end; + setvgacolors(p); + for i:=0 to 8*320-1 do + mem[$A000:i+320*164]:=col; + + writeline(125,114,'PRESENTS'); + writeline(55,124,' THE MENU INTRO'); + for i:=1 to 3 do + writeline(55,134+i*10,menu[i]); + flag:=doit('menu-int.res',sbport,0,12000); + bo:=true; + n:=0; + m:=0; (* wobble style *) + mm:=0; + writeline(159-length(text[1])*4,191,text[1]); + k:=2; + ende:=false; + men:=3; + + ledz:=0; + repeat + if mm>2 then begin + mm:=0; + if bo then begin + inc(n,1); + if n>39 then begin + bo:=false; + end; + end else begin + dec(n,1); + if n<1 then begin + bo:=true; + end; + end; + end else begin + inc(mm,1); + end; + if m>46 then begin + m:=0; + end else begin + inc(m,1); + end; + + if ledz>20000 then begin + ledz:=0; + move(leer,mem[$A000:191*320],8*320); + writeline(159-length(text[k])*4,191,text[k]); + inc(k); + if k>18 then k:=1; + end; + for i:=3 to 74 do + move(logo[i],mem[$A000: 320*(n+i)+sinus[i+m]],226); + if keypressed then begin + ch:=readkey; + if ch=#0 then begin + ch:=readkey; + if (ch=#80) and (men<3) then begin + move(leer,mem[$A000:(134+men*10)*320],8*320); + writeline(55,134+men*10,menu[men]); + inc(men); + for i:=0 to 8*320-1 do + mem[$A000:i+320*(134+men*10)]:=col; + writeline(55,134+men*10,menu[men]); + end; + if (ch=#72) and (men>1) then begin + move(leer,mem[$A000:(134+men*10)*320],8*320); + writeline(55,134+men*10,menu[men]); + dec(men); + for i:=0 to 8*320-1 do + mem[$A000:i+320*(134+men*10)]:=col; + writeline(55,134+men*10,menu[men]); + end; + end else begin + if ch=#27 then ende:=true; + if ch=#13 then begin + case men of + 1:begin + if menu[1,17]='Y' then begin + menu[1,17]:=' '; + menu[1,18]:='N'; + menu[1,19]:='O'; + end else begin + menu[1,17]:='Y'; + menu[1,18]:='E'; + menu[1,19]:='S'; + end; + for i:=0 to 8*320-1 do + mem[$A000:i+320*(134+men*10)]:=col; + writeline(55,134+men*10,menu[men]); + end; + 2:begin + end; + 3:ende:=true; + end; + end; + end; + end; + until ende; + endit; + for i:=0 to 31999 do + mem[$A000:i]:=0; + for i:=0 to 31999 do + mem[$A000:i+32000]:=0; + textmode(CO80); +end. \ No newline at end of file diff --git a/SOURCE/MENU-INT.RO/menu-int.RES b/SOURCE/MENU-INT.RO/menu-int.RES new file mode 100644 index 0000000000000000000000000000000000000000..d6673435a9b281615b9c68d1fe33c47cb47608bb GIT binary patch literal 69232 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 J$b*n)#lKZ!bm;&9 literal 0 HcmV?d00001 diff --git a/SOURCE/MENU-INT.RO/wowtpu.tpu b/SOURCE/MENU-INT.RO/wowtpu.tpu new file mode 100644 index 0000000000000000000000000000000000000000..c9a6088c046dd0ed5cdcd733c3408dfb3eb0743e GIT binary patch literal 11952 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 Xha8VTF>pJH=8D`KD~0tLI4Ax$a4{ba literal 0 HcmV?d00001 diff --git a/SOURCE/STAR-INT.RO/COMPILE.BAT b/SOURCE/STAR-INT.RO/COMPILE.BAT new file mode 100644 index 0000000..c3db82f --- /dev/null +++ b/SOURCE/STAR-INT.RO/COMPILE.BAT @@ -0,0 +1,2 @@ +c:\progs\tp\tpc textgraf.pas +c:\progs\tp\tpc star-int.pas \ No newline at end of file diff --git a/SOURCE/STAR-INT.RO/TEXTGRAF.PAS b/SOURCE/STAR-INT.RO/TEXTGRAF.PAS new file mode 100644 index 0000000..118cd7c --- /dev/null +++ b/SOURCE/STAR-INT.RO/TEXTGRAF.PAS @@ -0,0 +1,323 @@ + unit TextGraf; +interface +uses dos; +type + MonitorTyp = (Hercules, EGA, VGA, other); + VGAColorInfo = array[0..2] of byte; { eine VGA-Farbe: nur fr Demo } + VGAColors = array[0..255] of VGAColorInfo; { alle VGA-Farben: dito } + + function InitTextGraf: integer; + { Muá ganz zu Anfang des Programms, noch im Textmodus aufgerufen + werden. Ohne das funktioniert der Rest nicht. Ergebnis 0: Alles Ok, + unbekannter Videotyp: -1, zuwenig Speicher: 1 (Bedarf ca. 12Kb) } + procedure SetPaletteSave(On: boolean); + { Mit On = true nach InitTextGraf und im Textmodus aufrufen. Sichert die + Textpalette und reserviert Speicher fr die Grafikpalette, die dann + automatisch verwendet werden. On = false schaltet diese Automatik + wieder ab und gibt den Speicher fr die Paletten (ca. 1.5Kb) frei.} + procedure ToText; + { Schaltet vom Grafik- in den Testmodus. Bildspeicher etc. werden in + Sicherheit gebracht } + procedure ToGraph; + { Schaltet in die Grafik zurck. Vorher sollte ein Grafikmodus mit + ToText verlassen worden sein, um alle Werte zu initialisieren } + + procedure GrafikMode(Mode: byte); + { nur fr das Demoprogramm. Kann gel”scht werden, wenn BGI-Routinen + (InitGraph) verwendet werden } + function GetMonTyp: MonitorTyp; + { dito } + procedure SetVGAColors(var Colors: VGAColors); + { dito } +implementation + + +type + ScreenArray = array[0..3999] of word; { Bildspeicher bei 80x25 } + CharGenArray = array[0..8191] of byte; { Zeichengenerator } + ModeType = (Text, Grafik, unknown); + +var + regs: registers; { fr intr } + CharGen: CharGenArray absolute $A000:0; { Adresse Zeichengenerator } + BMode: byte absolute $40:$49; { Bios-Videomode } + +const + VModus: ModeType = unknown; + VMonitor: MonitorTyp = other; { Vorgabe: nichts gutes } + TScreen: ^ScreenArray = nil; { zeigt in den Bildspeicher } + ScrBuf: ^ScreenArray = nil; { speichert Textschirm zwischen } + CGBuf: ^CharGenArray = nil; { speichert Zeichengenerator } + ModeNr: byte = $FF; { Kennung fr Init } + TMode: byte = $FF; { der zu restaurierende Textmodus } + GMode: byte = $FF; { dito Grafikmodus } + VGATextPal: ^VGAColors = nil; + VGAGraphPal: ^VGAColors = nil; + +function IsVga: boolean; { haben wir VGA } +begin + with regs do + begin + AX:= $1A00; { Display Combination abfragen } + Intr($10, regs); + IsVga:= (AL = $1A); { gltiger Aufruf } + end; +end; + +function IsEGA: boolean; { liegt wenigstens EGA vor } +begin + with regs do + begin + AH:= $12; { Funktion $12 } + BL:= $10; { get EGA Information } + Intr($10, regs); + IsEga:= (BL <> $10); { hat sich was ge„ndert ? } + end; +end; + +procedure GetVGAColors(var Colors: VGAColors); +begin + with regs do + begin + ax:= $1017; + bx:= 0; + cx:= 255; + es:= seg(Colors); + dx:= ofs(Colors); + intr($10, regs); + end; +end; + +procedure SetVGAColors(var Colors: VGAColors); +begin + with regs do + begin + ax:= $1012; + bx:= 0; + cx:= 255; + es:= seg(Colors); + dx:= ofs(Colors); + intr($10, regs); + end; +end; + +procedure NoInitStop; +begin + writeln('TextGraph ist nicht initialisiert! Benutzen Sie InitTextGraph!'); + halt(2); +end; + +procedure HercTextMode; +var i: integer; + ModeReg: byte absolute 0:$465; +const HData: array[0..13] of byte = { Timingdaten! Nicht ver„ndern! } + ($61,$50,$52,$0f,$19,$06,$19,$19,$02,$0d,$0b,$0c,0,0); +begin + port[$3bf]:= 0; { Config Reg: HalfMode: eine Seite (3 fr Full Mode) } + port[$3b8]:= $21; { Mode Control: Dunkel, Text, 80x25 } + for i:= 0 to 13 do { die Timing-Daten komplett } + begin + port[$3b4]:= i; { Index Laden (Register einblenden) } + port[$3b5]:= HData[i]; { Wert schreiben } + end; + port[$3b8]:= $29; { ModeControl: Hell, Text, 80x25 } + ModeReg:= $29; { im BIOS-Ram protokollieren } +end; + +procedure HercGraphMode; +var i: integer; + ModeReg: byte absolute 0:$465; +const HData: array[0..13] of byte = { Timingdaten! Nicht ver„ndern! } + ($35,$2d,$2e,$07,$5b,$02,$57,$57,$02,$03,0,0,0,0); +begin + port[$3bf]:= 1; { Config Reg: HalfMode: eine Seite (3 fr Full Mode) } + port[$3b8]:= 2; { Mode Control: Dunkel, Grafik, Seite 0 } + for i:= 0 to 13 do { die Timing-Daten komplett } + begin + port[$3b4]:= i; { Index Laden (Register einblenden) } + port[$3b5]:= HData[i]; { Wert schreiben } + end; + port[$3b8]:= $0a; { ModeControl: Hell, Grafik, Seite 0 } + ModeReg:= $0a; { im BIOS-Ram protokollieren } +end; + +procedure GrafikMode(Mode: byte); { Setzt den Videomodus, nur fr Demo } +var i: integer; +begin + if VMonitor <> Hercules then { alle auáer Hercules sind sehr einfach } + with regs do + begin + AX:= Mode; { AH:= 0; AL:= Mode } + Intr($10, regs); + end + else + begin + HercGraphMode; + fillchar(ptr($B000,0)^, $8000, 0); { Clearscreen } + end; +end; + +function GetMonTyp: MonitorTyp; { Zugriffsfunktion, nur fr das Demo } +begin + GetMonTyp:= VMonitor; +end; + +procedure ToTextVGA; { sichert den Teil des Grafik-Bildspeichers, der } +var b: byte; { vom Zeichengenerator berschrieben wird } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3ce]:= 4; { Read Map Select holen } + b:= Port[$3cf]; { lesen } + Port[$3cf]:= 2; { Plane 2 ein } + CGBuf^:= CharGen; { Grafikinhalt von Zeichengenerator sichern } + Port[$3cf]:= b; { Wert zurck } +end; + +procedure ToTextEGA; { wie oben jedoch Variante fr EGA, } +var b: byte; { deren Register nicht lesbar sind } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3ce]:= 4; { Read Map Select holen } + Port[$3cf]:= 2; { Plane 2 ein } + CGBuf^:= CharGen; { Grafikinhalt von Zeichengenerator sichern } + Port[$3cf]:= 0; { Default zurck } +end; + +procedure ToGraphVGA; { berschreibt den Zeichengenerator mit } +var b: byte; { gesicherten Grafikinhalt } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3C4]:= 2; { Map Mask Register holen } + b:= Port[$3c5]; { lesen } + Port[$3c5]:= 4; { Plane 2 ein } + CharGen:= CGBuf^; { Zeichengenerator zurck } + Port[$3c5]:= b; { Wert zurck } +end; + +procedure ToGraphEGA; { wie oben jedoch Variante fr EGA, } +var b: byte; { deren Register nicht lesbar sind } +begin + regs.ax:= $90; { Standardmodus setzen um Zugriff sicherzustellen } + intr($10, regs); { Bildspeicher bleibt erhalten } + Port[$3C4]:= 2; { Map Mask Register holen } + Port[$3c5]:= 4; { Plane 2 ein } + CharGen:= CGBuf^; { Zeichengenerator kopieren } + Port[$3c5]:= 0; { Default zurck } +end; + +function InitTextGraf: integer; { ermittelt Monitor, setzt Variablen, } +begin { reserviert Speicher } + InitTextGraf:= 0; + if ModeNr <> $FF then exit; { wurde schon aufgerufen, alles ok } + InitTextGraf:= -1; { Fehlervorgabe: falsche Karte } + if IsEGA then VMonitor:= EGA; { EGA ? } + if IsVGA then VMonitor:= VGA; { oder VGA ? } + TMode:= BMode and $7f; + if TMode = 7 then + begin + TScreen:= ptr($B000,0); { Bildspeicheradresse Text mono setzen } + if VMonitor = other then { keines von beiden: } + begin + VMonitor:= Hercules; { dann Hercules, (evtl Probleme mit CGA-Mono)} + GMode:= 7; { Modi alle 7 } + end; + end else + TScreen:= ptr($B800,0); { Bildspeicheradresse Text farbig setzen } + if VMonitor = other then exit; { was anderes? geht nicht! } + InitTextGraf:= 1; { Fehlervorgabe: kein Speicher } + if VMonitor in [EGA, VGA] then + begin { Vorgaben fr EGA & VGA } + GMode:= $10; { Grafik 640x350 } + if MaxAvail >= sizeof(CGBuf) then { Speicher fr Puffer belegen } + New(CGBuf) + else + exit; { raus mit Fehler 1 } + end; + if MaxAvail >= sizeof(ScrBuf) then { noch mehr } + New(ScrBuf) + else + exit; { raus mit Fehler 1 } + ModeNr:= TMode; { Initialisierung merken } + InitTextGraf:= 0; { alles ok } +end; + +procedure SetPaletteSave(On: boolean); + { aktiviert oder deaktiviert die automatische Palettensicherung } +begin + if ModeNr = $FF then NoInitStop; { schon Init ? } + if On then + begin + if VGATextPal = nil then { gibts schon ? } + new(VGATextPal); { nein, neu } + if VGAGraphPal = nil then { dito Grafikpalette } + new(VGAGraphPal); + GetVGAColors(VGATextPal^); { Textfarben holen } + end else + begin + if VGATextPal <> nil then { was da ? } + begin + dispose(VGATextPal); { freigeben } + VGATextPal:= nil; { und kennzeichnen } + end; + if VGAGraphPal <> nil then { andere auch } + begin + dispose(VGAGraphPal); + VGAGraphPal:= nil; + end; + end; +end; + +procedure ToText; { Schaltet in Textmodus, bringt, was berschrieben } +begin { wird in Sicherheit } + if ModeNr = $FF then NoInitStop; { schon Init ? } + GMode:= BMode; { Grafikmodus merken } + case VMonitor of + VGA: begin + if VGAGraphPal <> nil then + GetVGAColors(VGAGraphPal^); + ToTextVGA; { Zeichengeneratorbereich sichern } + end; + EGA: ToTextEGA; + end; {case} + if VMonitor = Hercules then + HercTextMode { Hercules Textmodus ohne Bildspeicher l”schen } + else + begin + regs.ax:= TMode or $80; { Text, Bit 7 = 1: Bildspeicher nicht l”schen } + intr($10, regs); + if (VMonitor = VGA) and (VGATextPal <> nil) then + SetVGAColors(VGATextPal^); + end; + scrbuf^:= TScreen^; { Grafikinhalt von Textschirm sichern } + VModus:= Text; +end; + +procedure ToGraph; { versucht den Grafikmodus zu restaurieren } +begin + if ModeNr = $FF then NoInitStop; { schon Init ? } + TMode:= BMode; + TScreen^:= ScrBuf^; { Grafikinhalt zurck in Textbildschirm fllen } + case VMonitor of + VGA: begin + if VGATextPal <> nil then + GetVGAColors(VGATextPal^); + ToGraphVGA; { dito Zeichengenerator } + end; + EGA: ToGraphEGA; + end; {case} + if VMonitor = Hercules then + HercGraphMode { Hercules handmade Grafikmodus } + else + begin + regs.ax:= GMode or $80; { Text, Bit 7 = 1: Bildspeicher nicht l”schen } + intr($10, regs); + if (VMonitor = VGA) and (VGAGraphPal <> nil) then + SetVGAColors(VGAGraphPal^); + end; + VModus:= Grafik; +end; + +end. diff --git a/SOURCE/STAR-INT.RO/star-int.001 b/SOURCE/STAR-INT.RO/star-int.001 new file mode 100644 index 0000000000000000000000000000000000000000..2ce7b29d49791b4a491be0e509fc82e5c3dfbac5 GIT binary patch literal 771 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 NC*TQq0uM~!{{fER9yR~~ literal 0 HcmV?d00001 diff --git a/SOURCE/STAR-INT.RO/star-int.003 b/SOURCE/STAR-INT.RO/star-int.003 new file mode 100644 index 0000000000000000000000000000000000000000..cdeb25c13464c949c3d6fd174cd7db76f3ca27df GIT binary patch literal 771 rcmWG=^kHCN(6KO4G0;)a(U4G45mAs4kPzV!5deyhg3%Bd_8|ZOcSi$; literal 0 HcmV?d00001 diff --git a/SOURCE/STAR-INT.RO/star-int.004 b/SOURCE/STAR-INT.RO/star-int.004 new file mode 100644 index 0000000000000000000000000000000000000000..3ed72692a7f86f79704983be35c526c91ab3a146 GIT binary patch literal 64003 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 literal 0 HcmV?d00001 diff --git a/SOURCE/STAR-INT.RO/star-int.PAS b/SOURCE/STAR-INT.RO/star-int.PAS new file mode 100644 index 0000000..23288a0 --- /dev/null +++ b/SOURCE/STAR-INT.RO/star-int.PAS @@ -0,0 +1,186 @@ +{$S-} +{$R-} +{$G+} +{$D-} +uses crt,textgraf,WOWTPU,WOWCONST; +type + lpi = array[0..2] of byte; + lp = array[0..255] of lpi; +var + f : file; + k,i,j,x,y,anz : integer; + n : word; + b : byte; + l : lp; + p : vgacolors; + s : string; + c : array[0..130] of byte; + ch:char; + sx : array[0..300] of integer; + sy : array[0..300] of integer; + sc : array[0..300] of integer; + sc2: array[0..300] of integer; + font : array[0..80, 0..7, 0..7] of byte; + lauf : string; + lx,li: integer; + SBPort: word; + flag:integer; +procedure writeline(wlx,wly : integer; wls : string); +begin + for i:=1 to length(wls) do begin + for x:=0 to 7 do begin + for y:=0 to 7 do begin + if ord(wls[i])<>32 then + mem[$A000: (wly+y) * word(320) + wlx+x+(i-1)*8]:=font[ord(wls[i])-64,x,y] + end; + end; + end; +end; +function Key : boolean; +var flag : boolean; +begin + asm + mov Flag,0 + in al,$60 + test al,128 + jne @@KeineTaste + mov Flag,1 + @@KeineTaste: + end; + Key:=Flag; +end; +begin + case InitTextGraf of + 1: begin end; + end; + GrafikMode($13); + for i:=0 to 31999 do begin + mem[$A000:i]:=0; + end; + for i:=0 to 31999 do begin + mem[$A000:i+32000]:=0; + end; + + for i:=0 to 255 do begin + for j:=0 to 2 do begin + p[i,j]:=0; + end; + end; + setvgacolors(p); + + assign(f,'star-int.004'); + reset(f); + blockread(f,c,1,n); + for i:=0 to 130 do + begin + mem[$A000: i]:= c[3+i]; + end; + blockread(f,mem[$A007:13],500,n); + close(f); + for j:=0 to 1 do begin + for i:=0 to 39 do begin + for x:=0 to 7 do begin + for y:=0 to 7 do begin + font[i+j*40,x,y]:= mem[$A000: (y+j*8) * word(320) + x+i*8]; + end; + end; + end; + end; + + assign(f,'star-int.001'); + reset(f); + blockread(f,l,sizeof(l),n); + for i:=0 to 255 do + begin + for j:=0 to 2 do + begin + p[i,j]:=l[i+1,j]; + end; + end; + close(f); + + assign(f,'star-int.003'); + reset(f); + blockread(f,l,sizeof(l),n); + for i:=208 to 223 do + begin + for j:=0 to 2 do + begin + p[i,j]:=l[i+1-208,j]; + end; + end; + close(f); + + assign(f,'star-int.002'); + reset(f); + blockread(f,c,1,n); + for i:=0 to 130 do + begin + mem[$A000: i]:= c[3+i]; + end; + blockread(f,mem[$A007:13],500,n); + close(f); + + writeline(74,90, ' star intro'); + writeline(74,106,' code gfx music'); + writeline(74,122,' by stefan koelle'); + writeline(78,138,' press any key'); + + randomize; + for x:=0 to 150 do + begin + sx[x] := random(319); + repeat + k:=0; + sy[x] := random(199)+1; + for i:=0 to x-1 do + begin + if sy[i]=sy[x] then k:=1; + end; + for i:=x+1 to 150 do + begin + if sy[i]=sy[x] then k:=1; + end; + until k=0; + sc[x] := random(3)+1; + sc2[x]:= mem[$A000: sy[x] * word(320) + sx[x]]; + end; + + setvgacolors(p); + SBPort:=IdentifySB; + if SBPort=0 then begin (* bei IdentifySB=0 -> Keine Soundblaster *) + SBPort:=$42; (* Lautsprecherausgabe *) + end; + for i:=1 to paramcount do + if paramstr(i)='-p' then SBPort:=$42; + if sbport=$42 then begin + flag:=doit('star-int.005',sbport,0,21000); + end else begin + flag:=doit('star-int.005',sbport,0,16000); + end; + repeat + for x:=0 to 150 do begin + mem[$A000: sy[x] * word(320) + sx[x]]:= sc2[x]; + sx[x]:=sx[x]+SC[X]; + if sx[x]>319 then + begin + sx[x]:=0; + sc[x]:=random(3)+1; + end; + sc2[x]:=mem[$A000: sy[x] * word(320) + sx[x]]; + if mem[$A000: sy[x] * word(320) + sx[x]]=0 then + begin + mem[$A000: sy[x] * word(320) + sx[x]]:= (-sc[x]*3)+27; + end; + end; + until key; + ch:=readkey; + endit; + for i:=0 to 31999 do begin + mem[$A000:i]:=0; + end; + for i:=0 to 31999 do begin + mem[$A000:i+32000]:=0; + end; + TEXTMODE(co80); +end. \ No newline at end of file diff --git a/SOURCE/STAR-INT.RO/wowconst.tpu b/SOURCE/STAR-INT.RO/wowconst.tpu new file mode 100644 index 0000000000000000000000000000000000000000..ad128ea60e5f85ffc0a7930c68474fe428e6d13f GIT binary patch literal 2144 zcmb_dTWl0n7(V~ZUZ(dJON-a46a|E`-QJOcv%9m~b+@zAGqabj5AsAz6JJzJ6C2u`H`;llTqq|Cw(ALz`|G;OIUjN7UC){o;`x*Q5HeEA7F;W%CZo|mU}e-P zNY679#N!UrRnack%wH?MUU-q{MUVXlU`LF>F>wy+gL>#cf;<)E7$r+q3o@JGl+$Vo zGFmmQnY<-wXD|SgN8Ci&k{;~>bye^j9bFbYj!Hv;s<{=`;x%o)$)*?W6ssG)(QrLe zdQQP*?rd3wN6iFS-))H(Ae?B`$|h$lo4rU)%?TH+ge92>slAeVI-RB=cr$kyg)?nL zWh~-(#K2+h;Vf5%M$r$-8&OQ0#+xWNp}Z!WD6UP>p}h@Co0+41P=m~&yp^ib{)WAs z3A30^7p;7ro@f{%*mG$WDA5!=Td)h142aK28X0M((|I#PsfJgZo0OJiC-SD9Bdfu; zrlmEPoH1>zm3M$=^ash7oN1eRl_Ud}w`xI?5yj5aOhBP1ZCM*LGLv4mWKlLq@R25? zWm9JDtVd4<9DF+zS97Oa!(zDRtfNND2jnG^y0l7!1753A*i5DDD%oJ_$2(b3QGA<& zT1K5@#WrUxlHdkIIP#j>b7<_v``aSs(95H@3HAymTgjX1nw$b(;g}F#7!`*`9UP@{ z9n!F0)TAM;%&eKoCg~JhR&E=}s1MW<4D=H0S9IBeAlE}-GW02;F5VWky&knAi24Hd zbzK?-=^r7`wY9t2j7x$CVnjOl7=M7-;W}eoJbSSLutW&H3s^quSJbM6=vEfr#@(hj zCU{zq^3ro}_P5s_pCQL|1r4rgn)vn@?%;RF*4Ihg2yH;FtghecD=()b%Ozu5mw4qj zA(n5xeiSu-hm)_YijBTw-p)^0@T(=nhMd`=Wk>e%f)z$TNYQYrsqLk(y(=yinZ2-gv5AnLvA2%Lo3O8e=?3;U;lS-M-Y9*2^4!N~J{0Qty`##;hT|in zW8)K(Q)VKWviv_2j{K4D$dG7@oq&u(E<#R29)!$6#vq@9JPo<*KN8|C=oRSiL$d#A J$b*n)#lKZ!bm;&9 literal 0 HcmV?d00001 diff --git a/SOURCE/STAR-INT.RO/wowtpu.tpu b/SOURCE/STAR-INT.RO/wowtpu.tpu new file mode 100644 index 0000000000000000000000000000000000000000..c9a6088c046dd0ed5cdcd733c3408dfb3eb0743e GIT binary patch literal 11952 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 Xha8VTF>pJH=8D`KD~0tLI4Ax$a4{ba literal 0 HcmV?d00001