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