forked from KolibriOS/kolibrios
fonts converter
git-svn-id: svn://kolibrios.org@2224 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
90f329d9c4
commit
0968bb5e8a
2561
programs/other/font_conv/char.txt
Normal file
2561
programs/other/font_conv/char.txt
Normal file
File diff suppressed because it is too large
Load Diff
2560
programs/other/font_conv/char2.txt
Normal file
2560
programs/other/font_conv/char2.txt
Normal file
File diff suppressed because it is too large
Load Diff
146
programs/other/font_conv/convert.asm
Normal file
146
programs/other/font_conv/convert.asm
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
use16
|
||||||
|
org $100
|
||||||
|
|
||||||
|
;==============================================================================
|
||||||
|
|
||||||
|
macro fopen { ; DX = filename
|
||||||
|
mov ax,$3D00
|
||||||
|
int $21
|
||||||
|
}
|
||||||
|
|
||||||
|
macro fclose { ; BX = file handle
|
||||||
|
mov ah,$3E
|
||||||
|
int $21
|
||||||
|
}
|
||||||
|
|
||||||
|
macro fread { ; BX = file handle, CX = count, DX = buffer
|
||||||
|
mov ah,$3F
|
||||||
|
int $21
|
||||||
|
}
|
||||||
|
|
||||||
|
macro fwrite { ; BX = file handle, CX = count, DX = buffer
|
||||||
|
mov ah,$40
|
||||||
|
int $21
|
||||||
|
}
|
||||||
|
|
||||||
|
;==============================================================================
|
||||||
|
|
||||||
|
; /////////////// char.mt ///////////////
|
||||||
|
|
||||||
|
mov dx,_font1_in
|
||||||
|
fopen
|
||||||
|
jc exit
|
||||||
|
xchg ax,bx
|
||||||
|
mov cx,$5000
|
||||||
|
mov dx,_buf
|
||||||
|
fread
|
||||||
|
jc exit
|
||||||
|
fclose
|
||||||
|
;---------------------------------------
|
||||||
|
mov bx,_buf+8
|
||||||
|
xor si,si
|
||||||
|
mov di,_buf
|
||||||
|
mov cl,1
|
||||||
|
xor al,al
|
||||||
|
cld
|
||||||
|
@@:
|
||||||
|
cmp byte[bx+si],$20
|
||||||
|
je .sp
|
||||||
|
or al,cl
|
||||||
|
.sp:
|
||||||
|
inc si
|
||||||
|
shl cl,1
|
||||||
|
cmp cl,00100000b
|
||||||
|
jne @b
|
||||||
|
mov cl,1
|
||||||
|
stosb
|
||||||
|
xor al,al
|
||||||
|
add si,3
|
||||||
|
cmp si,8*9
|
||||||
|
jb @b
|
||||||
|
xor si,si
|
||||||
|
add bx,8*10
|
||||||
|
cmp di,_buf+$900
|
||||||
|
jb @b
|
||||||
|
;---------------------------------------
|
||||||
|
mov dx,_font1_out
|
||||||
|
xor cx,cx
|
||||||
|
mov ah,$3C ; create
|
||||||
|
int $21
|
||||||
|
jc exit
|
||||||
|
xchg ax,bx
|
||||||
|
mov cx,$900
|
||||||
|
mov dx,_buf
|
||||||
|
fwrite
|
||||||
|
jc exit
|
||||||
|
fclose
|
||||||
|
|
||||||
|
; /////////////// char2.mt ///////////////
|
||||||
|
|
||||||
|
mov dx,_font2_in
|
||||||
|
fopen
|
||||||
|
jc exit
|
||||||
|
xchg ax,bx
|
||||||
|
mov cx,$6500
|
||||||
|
mov dx,_buf
|
||||||
|
fread
|
||||||
|
jc exit
|
||||||
|
fclose
|
||||||
|
;---------------------------------------
|
||||||
|
mov bx,_buf+10
|
||||||
|
mov di,_buf
|
||||||
|
cld
|
||||||
|
newchar:
|
||||||
|
; width of character
|
||||||
|
mov al, 8
|
||||||
|
cmp byte [bx-4], ' '
|
||||||
|
jz @f
|
||||||
|
mov al, [bx-4]
|
||||||
|
sub al, '0'-1
|
||||||
|
@@:
|
||||||
|
stosb
|
||||||
|
; character itself
|
||||||
|
xor si, si
|
||||||
|
charloop:
|
||||||
|
xor al, al
|
||||||
|
mov cl, 1
|
||||||
|
@@:
|
||||||
|
cmp byte[bx+si],$20
|
||||||
|
je .sp2
|
||||||
|
or al,cl
|
||||||
|
.sp2:
|
||||||
|
inc si
|
||||||
|
shl cl,1
|
||||||
|
cmp cl,10000000b
|
||||||
|
jne @b
|
||||||
|
stosb
|
||||||
|
add si,3
|
||||||
|
cmp si,10*9
|
||||||
|
jb charloop
|
||||||
|
add bx,10*10
|
||||||
|
cmp di,_buf+$A00
|
||||||
|
jb newchar
|
||||||
|
;---------------------------------------
|
||||||
|
mov dx,_font2_out
|
||||||
|
xor cx,cx
|
||||||
|
mov ah,$3C ; create
|
||||||
|
int $21
|
||||||
|
jc exit
|
||||||
|
xchg ax,bx
|
||||||
|
mov cx,$A00
|
||||||
|
mov dx,_buf
|
||||||
|
fwrite
|
||||||
|
jc exit
|
||||||
|
fclose
|
||||||
|
|
||||||
|
exit:
|
||||||
|
ret
|
||||||
|
|
||||||
|
;==============================================================================
|
||||||
|
|
||||||
|
_font1_in db 'char.txt',0
|
||||||
|
_font1_out db 'char.mt',0
|
||||||
|
_font2_in db 'char2.txt',0
|
||||||
|
_font2_out db 'char2.mt',0
|
||||||
|
|
||||||
|
_buf: rb $6500
|
BIN
programs/other/font_conv/convert.com
Normal file
BIN
programs/other/font_conv/convert.com
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user