📄 disp24.asm
字号:
;* 1 ascii code
;* DS:SI-1:font size 0=15*15
;* 1=15*16
;* 2=22*24
;* 3=24*24
;* DS:SI :ascii code
;* int 60h
;* ds:si font image
;*
;*2 Chinese Code
;* DS:SI-1: font size ,0=15*15
;* 1=15*16
;* 2=22*24
;* 3=24*24
;* DS:SI :Changjie Serial code
;* 'a' =1 'b'=2 ... ' '=0
;*
;* int 60h
;* if ds:si-6=3 there is no such font
;* ds:si font image
;===================================================================
;
;
;===================================================================
SDG SEGMENT WORD PUBLIC 'DATA'
SCRX DW 0
SCRY DW 0
FNT DB 2
BUFF DB 2
KEYIN DB 120 DUP(0)
KEYNO DB 0
BUFFEREND DB 1360 DUP(0)
SDG ENDS
;---------------------------------------
SCG SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:SCG,DS:SDG
start:
MOV AX,SDG
MOV DS,AX
MOV ES,AX
MOV AX,12H
INT 10H
aga:
sub ax,ax
int 16h
cmp al,20h
jz display
CMP AL,1BH
JZ EXIT
CMP AL,33H
JLE SETF
SUB BX,BX
MOV BL,KEYNO
MOV SI,OFFSET KEYIN
AND AL,5FH
SUB AL,40H
MOV DS:[SI+BX],AL
INC KEYNO
JMP AGA
DISPLAY:
CALL SHOW
CMP SCRX,74
JLE P1
MOV SCRX,-3
ADD SCRY,80*26
P1:
ADD SCRX,3
JMP AGA
SETF:
SUB AL,30H
MOV FNT,AL
JMP AGA
SHOW:
PUSH DS
PUSH ES
MOV DI,SCRX
MOV AX,SCRY
ADD DI,AX
push di
MOV SI,OFFSET KEYIN
INT 60H
pop di
MOV AX,0A000H
MOV ES,AX
MOV CX,24
SS1:
PUSH DI
MOVSW
MOVSW
POP DI
ADD DI,80
; ADD SI,1
LOOP SS1
POP ES
POP DS
MOV CX,6
MOV DI,OFFSET BUFF
MOV AL,FNT
STOSB
SUB AL,AL
LP1:
STOSB
LOOP LP1
MOV KEYNO,AL
RET
EXIT:
MOV AH,4CH
INT 21H
SCG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -