سلام،
بصورت خلاصه: برای این کار باید حافظه جدول کاراکترهای مورد نظرتون رو انتخاب کنید، بعدش محتویات حافظه رو بخونید! اما این که چطوری جدول کاراکتر رو انتخاب کنید رو توی کتاب PC Intern میتونید پیدا کنید. این چند وقته رو تو خوابگاه هستم، اگه کتاب رو گیر آوردم کدش رو هم براتون میفرستم.
البته اگه جدولهای استاندارد رو بخواهید کاری نداره با وقفه 16(10 هگزا) سرویس 17(11 هگزا) میتونید جدولهای استاندارد 8*8 یا 16*8 رو میخونید همونطور که گفتید:
برای خوندن جدول روی بایوس:
ASM
push BP { Save Base Pointer }
mov BH, Height
mov AX, 1130h { Function 11h, Subfuntion 30h }
int 10h { Interrupt 10h }
mov AX, BP
pop BP
mov Offs, AX { Store the pointer }
mov Segm, ES
END;
برای مقیم کردن یک جدول در حافظه موقت:
ASM
push BP { Save Base Pointer }
mov BP,Offs
mov AX,Segm
mov ES,AX
mov BH,Height
mov CX,Count { Count of characters you want to set char table for }
mov DX,Start { Start Index of characters you want to change }
mov AX, 1110h { Function 11h, Subfuntion 10h }
int 10h { Interrupt 10h }
mov AX, BP
pop BP
END;