Semi-OT: Interesting or unusual PC Compatibles?

Chuck Guzis cclist at sydex.com
Sun Jul 1 16:17:21 CDT 2007


On 1 Jul 2007 at 13:28, Fred Cisin wrote:

> How would you write a subroutine (for C) that would permit calling an
> INT that is defined at runtime?  (I didn't know any better ways at the
> time)
> 
>       . . .
>       MOV BX, offset stepon3
>       INC BX
>       MOV [BX], AL   ; change the INT to the one specified in AL
>       . . .
> > stepon3: INT 00h

Why not 

    PUSHF
    CALL FAR...?

There are cases where self-modifying code is unavoidable.  For 
example, on an 8080, 8085 IN our OUT instruction where the port is 
not known ahead of time.

Although modifying the code, as in:

    LDA		PORTNUM
    STA		INCOCD+1
INCODE:
    IN		$-$

works--it gets nasty if what you're writing is boot code in ROM.  You 
have to move your code to RAM to do this.   I don't know if the V20 
prefetch would kill you in emulation mode on this sort of thing.

Cheers,
Chuck



More information about the cctalk mailing list