Jé, tényleg van klikk! Azért reagál ilyen nehezen a billentyűleütésre, mert leköti a Nick-et a hibás LPT? Egyébként nem értem, mitől változik meg az LPT kezdőcím. A 82h és 83h porton keresztül változtatható, amit a program csak egyszer változtat (+1 a kilépésnél). Hibásan lennének a szegmensek belapozva és emiatt a C010h hívás felborít mindent? Vagy valahol felülírható a memóriában és felül is íródik?
Megnéztem emulátorban, mi látszik a Nick-en. Nincs call C010h, van kép:
Nick 80: 00 00 00 C0 Slot: 37
Nick LPB: 01B0,FE LD1: 0000 LD2: 0007
Van call C010h, nincs kép:
Nick 80: 00 00 00 C0 Slot: 2D
Nick LPB: 4A80,BE LD1: 0000 LD2: 0000
Ebből mondjuk nem látom*, hogy melyik jelenti az FC szegmenst, de az LPB-nél elég nagy eltérés van. Azt most fedeztem fel, hogy működik a debug és alul a Step gombbal tudom parancsonként léptetni a programot. 1024x768-as felbontásnál nem látszódtak a gombok, kilógott a debug képernyő alja.
Tényleg fut a program, de nagyon nehéz felismerni assembly-ben a neki megfelelő C kódot.
* Módosítás: ha rátehénkedek a Step gombra, akkor folyamatosan változnak a fenti értékek a Nick-nél. Ha jól gondolom, az LPB-ben az éppen megjelenített sorparaméter blokk van, és a 0-val kezdődő cím van az FC lapon, a 4-essel kezdődő pedig az FD-n. Valamiért ez tényleg rossz és az FD-n keresi az LPT-t, ha van call C010h.