flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
Picnic 11 Dec 2007, 19:19
Hello,
How to find the bitmaps of ascii characters in memory? |
|||
![]() |
|
edfed 11 Dec 2007, 20:53
what you want is this?
FFA6:000E rom graphics character table? |
|||
![]() |
|
Picnic 11 Dec 2007, 21:58
Hi edfed, I can't figure out what registers should i use, is this for 8x16 font?
|
|||
![]() |
|
sinsi 11 Dec 2007, 23:17
Quote:
|
|||
![]() |
|
edfed 12 Dec 2007, 03:28
to see what is the font from rom bios
Code: org 100h mov ax,13h int 10h mov ax,0A000h mov es,ax mov ax,0ffa6h mov gs,ax mov si,0eh xor di,di mov dx,di mov ch,16 .printline: mov cl,16 mov di,dx shl di,2 add di,dx shl di,6 .printchar: inc di mov bl,8 .nextline: mov al,[gs:si] add si,1 mov ah,80h .nextpix: mov bh,0 ;black test al,ah je @f mov bh,1 ;blue @@: mov [es:di],bh inc di shr ah,1 jne .nextpix add di,320-8 dec bl jne .nextline sub di,320*8-8 dec cl jne .printchar add dl,9 dec ch jne .printline @@: in al,60h cmp al,1 jne @b ret UFO NOSS ![]() |
|||
![]() |
|
Picnic 13 Dec 2007, 19:08
Thank you both for your help, i've tested both ways.
I can't locate the bytes at FFA6:000E in xp console but it's ok on DosBox Emulator. Vga's 1130h works fine. |
|||
![]() |
|
Picnic 24 Dec 2007, 22:30
Displays a nice big 'FASM' in mode 13h, tested on Windows xp.
Code: org 100h mov al,13h ; mode 13h 320x200 int 10h mov si,fasm ; offset address mov bx,4 ; x horizontal coordinate mov cl,bl ; outer loop (4 characters) find: lodsb cbw ; byte to word shl ax,3 ; ax*8 lgs di,[fs:43h*4] ; font table location add di,ax ; find current letter mov dx,60 ; y vertical coordinate mov ch,8 ; inner loop (8 bytes) get: mov ah,[gs:di] ; get character byte call draw add dx,10 inc di ; next byte dec ch jnz get add bx,80 loop find ; find next character xor ah,ah ; wait for key int 16h mov ax,3 ; restore text mode int 10h int 20h ; exit program draw: pusha ; save registers mov al,8 ; for each bit in byte bit: shl ah,1 ; shift to the left jnc nxt ; draw tile if carry flag mov cl,8 ; tile height (pixels) tout: mov ch,8 ; tile width tin: call pixel inc bx dec ch jnz tin sub bx,8 inc dx loop tout sub dx,8 nxt: add bx,10 dec al jnz bit popa ; restore registers ret pixel: pusha mov cx,bx mov ax,0c0fh ; draw white pixel at cx,dx int 10h popa ret fasm db 'FASM' |
|||
![]() |
|
DOS386 25 Dec 2007, 00:14
thimis wrote: Displays a nice big 'FASM' in mode 13h, tested on Windows xp. Did you test on DOS also ? You know, it displays junk ![]() Code: org 100h mov al,13h ; AH = ??? _________________ Bug Nr.: 12345 Title: Hello World program compiles to 100 KB !!! Status: Closed: NOT a Bug |
|||
![]() |
|
Picnic 25 Dec 2007, 10:18
Unfortunately no, only on Windows xp Dos and Dosbox Emulator.
Thanks for the indications NTOSKRNL_VXE, zero on both cases ![]() |
|||
![]() |
|
shoorick 25 Dec 2007, 11:10
here is an old font editor. unfortunatelly (for you) it has russian interface, but it is so simple, so you can try to use it in a "blind" way:
1.when you start it it will ask you to search font: in file (up option) and in memory (down option). if you will choose file - you will need then to type file name manually (if file not found - check if it is not hidden or so). if it is not in current dir - maybe need to type full file name. 2.after file or memory searched - suggested list of found fonts 8x?? - you may chose one to edit or search manually. 3.if you are searching manually "+"/"-" increase/decrease font height to update search. 4.when you found a font you may edit it: press F4 5.while editing - walking by dots - arrow keys, by symbols - shift+arrow keys, toggle dot - space bar. options: F2-save full this file F3-replace current font with another from other file F4-save current font to file
_________________ UNICODE forever! |
|||||||||||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.