Hogyan lehet ezt a feladatot megoldani?
A következő lenne a problémám. Olyan órát kellene egy feladatként elkészítenem pascalban, ami rezidensen üzemel a háttérben és mellette nyugodtan mást is csinálhatnak a parancssorban, miközben az óra folyamatosan jár, ha kiadják a parancsot, hogy működjön. Akkor, ha pedig azt szeretnének, hogy ne működjön a háttérben, akkor szintén egy paranccsal ki is lehessen azt kapcsolni parancs megadással. Tehát be is és ki is, amikor csak szükség van rá. Elkészítettem egy rossz mintaprogramot sajnos, ami nem jól müxik, de szemléltetésnek azért jó, hogy köbö, mit is szeretnék.
Program ClockRoutine ;
Uses
Dos,
Crt ;
Var
Clock : Pointer ;
a,b,c,d: word;
i:integer;
var s:string;
Procedure Stopper ; Interrupt ;
var i:integer;
Begin
gettime(a,b,c,d);
gotoxy(40,1);write(a,b,c);
writeln;
write('Input:');
End;
begin
Begin
clrscr;
GetIntVec($1C,Clock);
for i:=0 to 24 do begin
write('Input:');
if i>0 then begin
sound(220);
delay(1000);
nosound;
end;
readln(s);
if s='q' then halt;
if s='clk' then SetIntVec($1C,@Stopper);
end;
end;
End.
Előre is nagyon köszi a segítséget, ha megoldható.
A TSR programok használata a DOS operációs rendszerekkel együtt már kb 15 éve a "deprecated" kategóriában található.
Sem a Unix/Linux sem a M$Windows nem használ ilyeneket.
És a "programozz TSR órát" feladatok akkor is csak a kezdő programozó tanoncok feledatai voltak. Memóriakezelőket, súgókat, billenytűzetkiosztás-kezelőket, nyomtató pufferprogramokat írni az egy kicsit komolyabb munka volt , de azok sem a Keep() eljárás ismerete miatt...
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!