將標準的16x16點陣漢字庫(下載16x16漢字庫)轉換成適合VGA文本模式下顯示的點陣漢字庫
本程序需要調用file.asm中的子程序,所以連接時需要把file連接進來,如下
C:\> tlink chghzk + file
調用參數描述如下
C:\> chghzk ; 無調用參數,轉換標準庫文件(SRC16.FNT)為適合VGA文本模式顯示的漢字庫(DST16.FNT) |
; more source code at http://www.ahjoe.com/source/srcdown.asp; CHANG A 16*16 HZK FILE TO VIDEO CHAR FORMATEXTRN FOPEN:FAR, FCREATE:FAR, FREAD:FAR, FWRITE:FAREXTRN FSIZE:FAR, FPOS:FAR CODE SEGMENTASSUME CS:CODE SOURCE DB 'SRC16.FNT',0 DEST DB 'DST16.FNT',0 ERRINFO DB 'ERROR!',07,0DH,0AH,'$' GOODINFO DB 'GOOD!',0DH,0AH,'$' SBUFF DW 16 DUP (0) DBUFF DW 16 DUP (0) SFINO DW 0FFH DFINO DW 0FFH TSIZE DW 0DW 0BEGIN: MOV AX, CSMOV DS, AXMOV ES, AXMOV DX, OFFSET SOURCEMOV AL, 00CALL FOPENJNC NETTEJMP ERROR NETTE:MOV SFINO, AXMOV DX, OFFSET DESTMOV AL, 01CALL FCREATEJC ERRORMOV DFINO, AXMOV AX, SFINOCALL FSIZEJC ERRORMOV TSIZE, AXMOV TSIZE+2, DXMOV AL, 00XOR CX, CXMOV DX, CXMOV BX, SFINOCALL FPOS CONTI:MOV AX, SFINOMOV DX, OFFSET SBUFFMOV CX, 32CALL FREADJC ERRORMOV DI, OFFSET DBUFFCLDMOV CX, 16MOV SI, OFFSET SBUFF REPEA1:MOVSBINC SILOOP REPEA1MOV CX, 16MOV SI, OFFSET SBUFF+1 REPEA2:MOVSBINC SILOOP REPEA2MOV DX, OFFSET DBUFFMOV AX, DFINOMOV CX, 32CALL FWRITEJC ERRORDB 66HMOV AX, 32DW 0DB 66HSUB TSIZE, AXJZ OVERJMP CONTIOVER:MOV DX, OFFSET GOODINFO SHOO:MOV AH, 09INT 21HMOV AH, 4CHINT 21HERROR:MOV DX, OFFSET ERRINFOJMP SHOO CODE ENDSEND BEGIN
?