-
Fototrend
AMD K6-III, és minden ami RETRO - Oldschool tuning
Megnyitott a Retro beárazás topik!
Új hozzászólás Aktív témák
-
válasz
envagyok #97818 üzenetére
Pedig Te programoztál is...
Egyszerű mint egy Pascal kód(nézegetem a régi forrásokat), pld saját detect ISA SB- re, furmányos, fapados módszer(részlet) :
var m,savem:byte;
BEGIN
Copyright;
base:=$220;
savem:=getmixer($30);
if savem=184 then setmastervolume(160,160);
repeat
setmastervolume(184,184);
m:=getmixer($30);
if m<>184 then if base=$280 then
begin
copyright;abort('SB16 not found!,Volume not installed!');
end;
if m<>184 then
case base of
$220:base:=$240;
$240:base:=$260;
$260:base:=$280;
$280:;
end;
until m=184;
setmastervolume(savem,savem);A hangerő változtatása a megfelelő bázis nélkül hatástalan, a ciklus+kiválasztással pedig megvan a kártya, a bázissal együtt, ha nincs, kilép. DMA nem játszik, mert ha nem SB- re fut, az is hatástalan, nem fagy, működik.
A rezidens billentyűnél azért már bonyolódik kicsit(részlet) :
{$F+}PROCEDURE VOLUME;INTERRUPT;{$F-}var Shift : Byte absolute 0:$0417;
x,kx,ky : byte;
const
valtn: boolean=false;
valts: boolean=false;BEGIN
if OK then
begin
(******************************************************)if (Shift and 32 <> 32) then valtn:=false else
{ if (Shift and 32 = 32) then }
if not valtn then
beginBase:=$240;
{ResetMixer;}
IRQselect(imIRQ10);
DMAselect(dcDMA7,dcDMA3);
OutputSelect(dmOutputAll);
InputSelect(dmLeftAll,dmRightAll);
InputGain(Gain_2x,Gain_2x);
OutputGain(Gain_4x,Gain_4x);
MicAGC(Off);kx:=wherex;ky:=wherey;
x:=getmixer($30);
if x<240 then inc(x,$08);
if x>255 then x:=255;
if x<1 then x:=1;
setmastervolume(x,x);
textcolor(15);textbackground(3);
gotoxy(55,2);write(' VOLUME B240 I10 L3 H7 ');
gotoxy(55,3);write(' SB_AWE32_PNP * ');
gotoxy(55,3);write(' SB_AWE32_PNP * ',x);
gotoxy(kx,ky);{normvideo;}
valtn:=true;
end;
if (Shift and 16 <> 16) then valts:=false else
{ if (Shift and 16 = 16) then}
if not valts then
beginBase:=$240;
{ResetMixer;}
IRQselect(imIRQ10);
DMAselect(dcDMA7,dcDMA3);
OutputSelect(dmOutputAll);
InputSelect(dmLeftAll,dmRightAll);
InputGain(Gain_2x,Gain_2x);
OutputGain(Gain_4x,Gain_4x);
MicAGC(Off);kx:=wherex;ky:=wherey;
x:=getmixer($30);
if x>10 then dec(x,$08);
if x>255 then x:=255;
if x<1 then x:=1;
setmastervolume(byte(x),byte(x));
textcolor(15);textbackground(3);
gotoxy(55,2);write(' VOLUME b240 i10 l3 h7 ');
gotoxy(55,3);write(' SB_AWE32_PNP * ');
gotoxy(55,3);write(' SB_AWE32_PNP * ',x);
gotoxy(kx,ky);{normvideo;}
valts:=true;
end;(******************************************************)
if (Shift and 4=4) then
if (Shift and 1=1) then
begin
Base:=$220;
{ResetMixer;}
IRQselect(imIRQ5);
DMAselect(dcDMA5,dcDMA1);
OutputSelect(dmOutputAll);
InputSelect(dmLeftAll,dmRightAll);
InputGain(Gain_2x,Gain_2x);
OutputGain(Gain_4x,Gain_4x);
MicAGC(Off);kx:=wherex;ky:=wherey;
x:=getmixer($30);
if x<240 then inc(x,$08);
if x>255 then x:=255;
if x<1 then x:=1;
setmastervolume(x,x);
textcolor(15);textbackground(3);
gotoxy(2,2);write(' VOLUME B220 I5 L1 H5 ');
gotoxy(2,3);write(' SB_16 * ');
gotoxy(2,3);write(' SB_16 * ',x);
gotoxy(kx,ky);{normvideo;}
valtn:=true;
end;
if (Shift and 4=4) then
if (Shift and 2=2) then
begin
Base:=$220;
{ResetMixer;}
IRQselect(imIRQ5);
DMAselect(dcDMA5,dcDMA1);
OutputSelect(dmOutputAll);
InputSelect(dmLeftAll,dmRightAll);
InputGain(Gain_2x,Gain_2x);
OutputGain(Gain_4x,Gain_4x);
MicAGC(Off);kx:=wherex;ky:=wherey;
x:=getmixer($30);
if x>10 then dec(x,$08);
if x>255 then x:=255;
if x<1 then x:=1;
setmastervolume(byte(x),byte(x));
textcolor(15);textbackground(3);
gotoxy(2,2);write(' VOLUME b220 i5 l1 h5 ');
gotoxy(2,3);write(' SB_16 * ');
gotoxy(2,3);write(' SB_16 * ',x);
gotoxy(kx,ky);{normvideo;}
valts:=true;
end;
if (Shift and 8=8) then
if (Shift and 1=1) then
beginBase:=$240;
{ResetMixer;}
IRQselect(imIRQ10);
DMAselect(dcDMA7,dcDMA3);
OutputSelect(dmOutputAll);
InputSelect(dmLeftAll,dmRightAll);
InputGain(Gain_2x,Gain_2x);
OutputGain(Gain_4x,Gain_4x);
MicAGC(Off);kx:=wherex;ky:=wherey;
x:=getmixer($30);
if x<240 then inc(x,$08);
if x>255 then x:=255;
if x<1 then x:=1;
setmastervolume(x,x);
textcolor(15);textbackground(3);
gotoxy(55,2);write(' VOLUME B240 I10 L3 H7 ');
gotoxy(55,3);write(' SB_AWE32_PNP * ');
gotoxy(55,3);write(' SB_AWE32_PNP * ',x);
gotoxy(kx,ky);{normvideo;}
valtn:=true;end;
if (Shift and 8=8) then
if (Shift and 2=2) then
beginBase:=$240;
{ResetMixer;}
IRQselect(imIRQ10);
DMAselect(dcDMA7,dcDMA3);
OutputSelect(dmOutputAll);
InputSelect(dmLeftAll,dmRightAll);
InputGain(Gain_2x,Gain_2x);
OutputGain(Gain_4x,Gain_4x);
MicAGC(Off);kx:=wherex;ky:=wherey;
x:=getmixer($30);
if x>10 then dec(x,$08);
if x>255 then x:=255;
if x<1 then x:=1;
setmastervolume(byte(x),byte(x));
textcolor(15);textbackground(3);
gotoxy(55,2);write(' VOLUME b240 i10 l3 h7 ');
gotoxy(55,3);write(' SB_AWE32_PNP * ');
gotoxy(55,3);write(' SB_AWE32_PNP * ',x);
gotoxy(kx,ky);{normvideo;}
valts:=true;end;
end;
OriginalHandler;
END;A 3 test probléma nem megoldható.
Új hozzászólás Aktív témák
- Letartóztatták, mert AI segítségével csalt az egyetemi vizsgán
- Okos Otthon / Smart Home
- Betelik a pohár: nagy igény lenne a gyorshajtás-ellenes technológiára
- Eredeti játékok OFF topik
- Mobil flották
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- Nők, nőügyek (18+)
- Kormányok / autós szimulátorok topicja
- Samsung Galaxy S23 Ultra - non plus ultra
- Xiaomi Mi 10 - nem olcsóbb, hanem kedvezőbb árfekvésű
- További aktív témák...