-=> Mocking Jerry Coffin to Kurt Wismer <=-
JC> I see a couple of problems, though I'm not sure if they're related to
JC> the symptoms you're seeing or not.
well the litmus test will be if the symptoms go away...
JC> int 25h leaves an extra word on the stack - if you don't get rid of it
JC> (typically by popping it into a register) you'll eventually run into
JC> problems.
ah, yes... the flags regsiter...
JC> This isn't a bug as such, but I'd rewrite this loop:
JC> mov si, offset buff
JC> mov cx, 100h
JC> loop1:
JC> lodsw
JC> cmp ax, 0f6f6h
JC> loopz loop1
i'll try it...
KW> writ:
KW> push dx ;save sector index
KW> mov bx, offset buff + 200h ;append sector index to buffered
KW> mov byte ptr[bx], dh ;sector for later recovery
KW> mov byte ptr[bx + 1], dl
JC> Umm...unless I'm mistaken, this is overwriting the last byte of the
JC> sector with the first byte of the sector index number.
i don't think so... the sector should be from 0h to 1FFh... that is 200h
bytes, isn't it?
KW> buff db 202 dup(?)
JC> In your program you're using 202 HEX bytes, but you're only reserving
JC> 202 DECIMAL bytes for the buffer...
fixed...
but unfortunately, the litmus test failed... even after implementing all
of your suggestions it's still only outputting a 514 byte file when it
should be outputting a 4626 byte file... weird...
thanks for the suggestion about comparing words though..
... today's mock has been brought to you by the letters p, u, and # pi...**
--- TGWave v1.20.b09
---------------
* Origin: fks Online! * Ontario, Canada * (905)820-7273 * (1:259/423)
|