
 Itt tallhat nhny C-s kdrszlet, amit ppen rdekesebbnek talltam,
a Fido olvassa kzben, s gondoltam, hogy megosztom a Fidt nem olvaskkal.

Nzzk az elst:

int Windows_On( void )
{
 unsigned short retv;

 asm {
   mov ax, 0x1600
   int 0x2F
   and ax, 0xFF
   mov retv, ax
  }
 return ( retv != 0 && retv != 0x80 );
}

Ez gondolom egyrtelm, hogy mit csinl. Visszaadja, hogy Windows all
futtatjk-e a programunkat.


 Na, nzzk a kvetkezt:

 T> Hogy lehet a int 1c- (esetleg mas megszakitasnal) beallitani, hogy
 T> hanyszor hivodjon meg masodpercenkent?

Az Int 1c user interrupt minden 08-as HW interrupt
elfogadsakor meghvdik, a 08-as HW int-et pedig (a
rendszerrt intzi) a 0. Timer/Counter (T/C) csatorna
vltja ki.
A 0. T/C csatorna alapesetben kb. 18Hz-es (pontosabban:
18.20679026Hz) frekvencival generlja a megszaktst.

A T/C sszes csatornja 1.193182MHz-es rajelet kap. A T/C
minden csatornja 16 bites, vagyis 1:65536 max.
osztsarnyt lehet belltani (Azrt nem 1:65535, mert a 0
szmllrtk 65536-os osztst eredmnyez ha jl emlkszem)

Alapesetben a 0. T/C FFFFh-ra van felprogramozva. gy jn ki a 18Hz.

A frekvencia/id/szmllrtk gy szmolhat:

f=1193182/TC

T=0.83809511*TC

TC=T*0.83809511

TC=1193182/f

Ahol: f a frekvencia Hz-ben
      T id sec-ben
     TC szmllrtk

A 0. T/C csatornba pedig gy lehet berni a TC rtkt,
hogy a 40h portra kirod a TC alacsonyabb byte-jnak
rtkt, majd ugyanerre a portra a magasabb byte-jnak
rtkt.
Amikor a szmll legkzelebb elri a nullt (visszafele
szmol) az j rtk betltse utn, onnantl az j rtkkel
fog mkdni.

(Ha a 0. T/C idztst megvltoztatod, akkor a DOS rja
termszetesen csalni fog.)



Egy rdekes algoritmus a ht napjainak kiszmtsra:

Az algoritmus megalkotja Zeller volt  nem a zldsg, hanem a matematikus!
Radsul valamikor a mlt szzadban vge fel, teht nem is kimondottan
szmtgpes eljrsrl van sz. A szpsge abban ll, hogy zrt formula:
bemennek a szmok s kijn az eredmny. I'gy fest:

     (M + 1) * 26               Y       C
   [ ------------ ] + D + Y + [ - ] + [ - ] - 2C,
          10                    4       4

ahol C az v els kt jegyt jelenti (ma 19), Y az v utols kt jegyt (ma
95), M a hnapot (ma 3) s D a napot (ma 8). A janurt s februrt az elz
v 13. ill. 14. hnapjnak kell tekinteni (azaz, 1995/02/28 az algoritmus
szempontjbl 1994/14/28 lesz). A szgletes zrjelek az egszrsz fggvnyt
jelentik (vagy mskppen: a jellt osztsok egszosztsok, a maradkot nem
kell figyelembe venni).

A kijv rtket modulo 7 vve 0 szombatot jelent, 1 vasrnapot, 2 htft s
gy tovbb. rdekessgkppen kiszmolva a mai napra:

  10 + 8 + 95 + 23 + 4 - 38 = 102, s 102 modulo 7 = 4, azaz szerda.

Az algoritmus gynyr, mkdik vszzadokon keresztl...
