Non mi è chiaro quale sia il compito della funzione MK_FP(). Vi riporto un esempio:
codice:
#pragma inline
#include <dos.h>
int main(void){
unsigned char far *schermo;
unsigned char pixel;
asm mov ax,0x13;
asm int 0x10;
schermo=(unsigned char *)MK_FP(0xA000,0);
schermo+=100;
pixel=0x04;
*schermo=pixel;
asm xor ax,ax; //attendi un tasto
asm int 0x16;
asm mov ax,0x03; //modalità testo
asm int 0x10;
return 0;
}
Il che, secondo me, avrebbe acceso un pixel rosso alle coordinate [100,0], mentre invece ciò non avviene e lo schermo rimane nero. Quindi io mi chiedo come devo sostituire
[CODE]*schermo=pixel;[CODE]
che funziona benissimo se io invece che assegnare l'indirizzo al puntatore schermo tramite la funzione MK_FP() lo assegno al momento della dichiarazione(unsigned char far *schermo=0xA0000000).