mirror of https://github.com/nmlgc/ReC98.git
142 lines
2.0 KiB
NASM
142 lines
2.0 KiB
NASM
; superimpose & master library module
|
|
;
|
|
; Description:
|
|
; BFNT+ファイルからのパターンの登録
|
|
;
|
|
; Functions/Procedures:
|
|
; int super_entry_bfnt( const char * file_name ) ;
|
|
;
|
|
; Parameters:
|
|
; file_name BFNT+ファイル名
|
|
;
|
|
; Returns:
|
|
;
|
|
;
|
|
; Binding Target:
|
|
; Microsoft-C / Turbo-C / Turbo Pascal
|
|
;
|
|
; Running Target:
|
|
; PC-9801
|
|
;
|
|
; Requiring Resources:
|
|
; CPU: 8086
|
|
;
|
|
; Notes:
|
|
;
|
|
;
|
|
; Compiler/Assembler:
|
|
; TASM 3.0
|
|
; OPTASM 1.6
|
|
;
|
|
; Author:
|
|
; Kazumi(奥田 仁)
|
|
; 恋塚(恋塚昭彦)
|
|
;
|
|
; Revision History:
|
|
;
|
|
;$Id: superbft.asm 0.06 93/01/16 14:17:53 Kazumi Rel $
|
|
;
|
|
; 93/ 3/20 Initial: master.lib <- super.lib 0.22b
|
|
;
|
|
|
|
MRETURN macro
|
|
pop DI
|
|
pop SI
|
|
pop DS
|
|
pop BP
|
|
ret DATASIZE*2
|
|
EVEN
|
|
endm
|
|
|
|
func SUPER_ENTRY_BFNT
|
|
push BP
|
|
mov BP,SP
|
|
push DS
|
|
push SI
|
|
push DI
|
|
|
|
@@file_name = (RETSIZE+1)*2
|
|
|
|
if LDATA
|
|
push word ptr [bp+@@file_name+2]
|
|
endif
|
|
push word ptr [BP+@@file_name]
|
|
_call FONTFILE_OPEN
|
|
jc short @@return
|
|
|
|
mov BX,AX ;file handle
|
|
mov CX,offset header
|
|
push BX
|
|
push CX
|
|
push BX ; handle
|
|
_push DS
|
|
push CX ; header
|
|
_call BFNT_HEADER_READ ; bfnt_header_read(handle, header)
|
|
pop CX
|
|
pop BX
|
|
jc short @@error
|
|
|
|
mov AL,header.col
|
|
and AL,7fh
|
|
cmp AL,3
|
|
mov AX,InvalidData
|
|
jne short @@error
|
|
|
|
xor SI,SI
|
|
mov AX,header.extSize
|
|
or AX,AX
|
|
jz short @@no_exthdr
|
|
push BX
|
|
push CX
|
|
push BX ; handle
|
|
_push DS
|
|
push CX ; header
|
|
_call BFNT_EXTEND_HEADER_ANALYSIS ; (handle, header)
|
|
pop CX
|
|
pop BX
|
|
mov SI,AX ; clear_color
|
|
EVEN
|
|
@@no_exthdr:
|
|
test header.col,80h ;palette table check
|
|
jz short @@palette_end
|
|
push BX
|
|
push CX
|
|
|
|
push BX ; handle
|
|
_push DS
|
|
push CX ; header
|
|
_call BFNT_PALETTE_SET ; (handle, header)
|
|
|
|
pop CX
|
|
pop BX
|
|
jc short @@error
|
|
EVEN
|
|
@@palette_end:
|
|
push BX
|
|
|
|
push BX ; handle
|
|
_push DS
|
|
push CX ; header
|
|
push SI ; clear_color
|
|
_call BFNT_ENTRY_PAT ; (handle, header, clear_color)
|
|
|
|
pop BX
|
|
jc short @@error
|
|
|
|
push BX
|
|
_call FONTFILE_CLOSE
|
|
mov AX,header.END_
|
|
sub AX,header.START
|
|
inc AX
|
|
MRETURN
|
|
|
|
@@error:
|
|
push AX
|
|
push BX
|
|
_call FONTFILE_CLOSE
|
|
pop AX
|
|
stc
|
|
@@return:
|
|
MRETURN
|
|
endfunc
|