Dos下的屏保程序实现

本文介绍了一段DOS下的屏保程序实现,重点在于键盘检测和中断处理。通过修改键盘中断INT 9,设置新的中断处理程序来复位计时器,当键盘被按下时重新启动屏保。由于程序在内存驻留,导致错误时需强制关闭DOSBox。此外,还提到了一个用于解除内存驻留的remove.exe工具。
.286
.MODEL SMALL
.CODE
;-------数据段---------
CLOCK DB 8 DUP(?)
OLD1C LABEL DWORD	;旧1c中断
OLD1COFF DW ?
OLD1CSEG DW ?
oldint9 dd ?
time dw 91
oldint60 dd ?
oldint1c dd ?
;-----------------------
soundf proc
	push dx
	push ax
	push cx
	mov 	dx,10
	in 		al,61h
	and		al,0fch
sound:
	xor		al, 02
	out		61h, al
	
	mov		cx, 1400h
wait1:
	loop	wait1
	dec 	dx
	jne		sound
	pop cx
	pop ax
	pop dx
	ret
soundf endp
;-----------------------
dispclock proc 
	  PUSH AX
      PUSH BX
      PUSH CX
      PUSH DX
      PUSH SI
      PUSH DS

	  mov cs:time, 18
	  LEA  SI,CLOCK
      MOV  AH,02H
      INT  1AH
      MOV  AH,CH
      MOV  AL,CL		;获取系统时间
      
	  MOV  CL,4
      SHR  CH,CL
      OR   CH,30H
      MOV  DS:[SI],CH
      INC  SI			;送ascii码,小时 高位
      
	  MOV  CH,AH
      AND  CH,0FH
      OR   CH,30H
      MOV  DS:[SI],CH
      INC  SI			;送ascii码,小时 低位
      
	  MOV  DL,3AH
      MOV  DS:[SI],DL
      INC  SI			;冒号
      
	  MOV  AH,AL
      SHR  AL,CL
      OR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值