I think a sample script worths more than 1000 words:
Go to a shell interface in the firebird server machine, cd to a folder where you have read/write permissions, start isql or isql-fb (depends on your system and firebird version) and run this script:
create database 'netmajor.fdb' user 'sysdba' password 'masterkey';
set autoddl off;
create table netmajor_example (
    netmajor_id     integer not null
  , str_data        varchar(200)
  , int_data        integer
  , constraint pk_netmajor_example
      primary key (netmajor_id)
);
create generator netmajor_gen;
set term ^;
create trigger netmajor_pkassign
   for netmajor_example
active before insert position 1
AS
begin
  if (new.netmajor_id is null) then
    new.netmajor_id = gen_id(netmajor_gen, 1);
end
^
commit work^
set term ; ^
insert into netmajor_example (str_data, int_data) values ('one', 1);
insert into netmajor_example (str_data, int_data) values ('twenty', 20);
commit work;
select * from netmajor_example;
Take a look at the results, which in my machine are:
; NETMAJOR_ID STR_DATA                     INT_DATA
;============ ============================ ============
;           1 one                                     1
;           2 twenty                                 20
IF you have questions, don't hesitate to contact.  Best regards.