Hi, I try use finalization in unit, but it not work.
When press Ctrl+C and exit program uses this unit PC-Speaker stay infinity play on interrupted tone. When Ctrl+C use spkoff; in finalization section not called. Unit: unit spkunit; {$MODE OBJFPC} {$ASMMODE INTEL} {$CODEPAGE UTF8} { Unit for playing melodys on PC-Speaker. For GNU/Linux 64 bit version. Root priveleges needed. Written on FreePascal. Copyright (C) 2019 Artyomov Alexander This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. } interface uses X86; procedure spk(b : word ); procedure spkon; procedure spkoff; implementation procedure spkon; begin asm push rax in al, 61h or al, 03h out 61h, al pop rax end; end; procedure spkoff; begin asm push rax in al, 61h or al, 03h xor al, 03h out 61h, al pop rax end; end; procedure spk(b : word ); var hb, lb : byte; begin; hb := hi (b); lb := lo (b); asm push rax mov al, 0B6h out 43h, al mov al, lb out 42h, al mov al, hb out 42h, al pop rax end; end; initialization fpioperm($42, 2, 1); // fpioperm($42, 1, 1); fpioperm($43, 1, 1); fpioperm($61, 1, 1); finalization spkoff; end. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel