当前位置: 首页 > news >正文

RAMinit 程序编译运行考古记录

本科的时候浅浅研究了DOSBox,今天看到网上挺多关于雷军代码的新闻,我把雷军代码在web上编译出来了,但是我是业余选手,所以做得比较差,不过大家感兴趣可以关注我的dosplay项目,旨在利用js-dos实现汇编语言在web中的运行,目前必须在电脑端打开才能编辑,手机上只能运行,代码使用我的chrome系的浏览器测试通过了,其他浏览器可能有问题。

点击运行雷军的RI.com代码 这个蓝色的链接使用chrome或者edge打开后应该可以看到自动编译RI.com程序,注意需要使用xWorker模拟器,同时打开/C/assembly/LeiJun/RI.asm文件,运行run-com命令。

我的完整编译程序的输出为:

C:\ASSEMBLY\LEIJUN>tasm RI.asm
Turbo Assembler  Version 4.1  Copyright (c) 1988, 1996 Borland International

Assembling file:   RI.asm
Error messages:    None
Warning messages:  None
Passes:            1
Remaining memory:  408k


C:\ASSEMBLY\LEIJUN>tlink /t RI.obj
Turbo Link  Version 7.1.30.1. Copyright (c) 1987, 1996 Borland International
Warning: DOSSEG directive ignored in module RI.ASM

运行程序可以获得如下内容:

C:\ASSEMBLY\LEIJUN>RI.com
RAMinit  Version 2.12 Copyright (c) 1989-1994  by KingSoft Ltd. 
Activate with:  

C:\ASSEMBLY\LEIJUN>ri /?
RAMinit  Version 2.12 Copyright (c) 1989-1994  by KingSoft Ltd. 
Programmed by Mr. Leijun    Dec 1992

Usage:   RI [options]

/H,/?    Display this screen
/CLS     Removes all TSR programs after current RI
/RET     Removes TSR programs include current RI
/NEW     Residents a new data copy of current environment
/ALL     Removes all RI copies and all other tsr programs
/Sxyy..  Define Hotkey   x=AuxHotkey   yy..=shift status
         x=auxiliary hotkey (default is "X") 
           x equ "1" means need AuxHotkey
         yy..=shift status  [CAScas]
           C: Left Ctrl    A: Left Alt    S: Left Shift
           c: Right Ctrl   a: Right Alt   s: Right Shift

Example: "RI /S1c"  means Hotkey is Right_Ctrl+X
         "RI /S0Cc" means HotKey is Left_Ctrl+Right_Ctrl
         "RI /CLS"  equals simply press hotkey
         "RI /RET"  Removes all TSRs after current RI and this RI

Contact me for RAMinit problems: (01)2561155 Call 1997

C:\ASSEMBLY\LEIJUN>ri  ri /cls
RAMinit  Version 2.12 Copyright (c) 1989-1994  by KingSoft Ltd. 

可以看到这里面有雷军当年的联系方式,从打印出来的 RAMinit 程序的相关说明可以看出,这个代码的RAMinit 版本为 2.12,由金山软件(KingSoft Ltd.)在 1989 - 1994 年开发,编程者是 Mr. Leijun,编写时间为 1992 年 12 月。该程序主要用于管理内存中的驻留程序(TSR)

  • 代码来自 https://github.com/doyou/RAMinit/
  • 演示效果可以看 https://www.bilibili.com/video/BV1uF411k7RH

中断程序

该RI.com程序可以中断目前死循环的程序,比如如下的程序,通过tasm编译运行之后显然会陷入死循环,这时就可以调用RI.com中断程序,从而可以做其他的事情。

; the system is blocked when executing main program
; can be solved by RI
 .386
DATA SEGMENT USE16
	MESG DB 'I forget to exit my code 5555; press right ctrl + left ctrl to stop me by ri.com plz',0DH,0AH,'$'
DATA ENDS
CODE SEGMENT USE16
	     ASSUME CS:CODE,DS:DATA
	BEG:  	MOV    AX,DATA
	       	MOV    DS, AX
			MOV    CX,8
	PRINT:  MOV    AH,9
	        MOV    DX, OFFSET MESG
	        INT    21H
	        LOOP   PRINT
	CHECK_LOOP:
    		CMP CX, 10000
    		JG  RESET_CX
    		INC CX
    		JMP CHECK_LOOP

	RESET_CX:
			MOV	CX, 0
			JMP CHECK_LOOP

			MOV AH,4CH
			INT 21H            	;BACK TO DOS
CODE ENDS
END  BEG

清除驻留程序TSR

在线的代码给出了一个实例,首先,安装了雷军写的RI程序,然后,运行程序tsr.exe,改程序设置了一个“终止并驻留”程序,其在屏幕右上角显示时间,接下来我们可以按住左右两个CTRL按键或者输入命令ri /cls来清除TSR。

PS 希望有大佬可以具体讲讲相关的知识,我确实不大懂这个程序的功能

相关文章:

  • 【云安全】云原生- K8S API Server 未授权访问
  • PowerBI 矩阵 列标题分组显示(两行列标题)
  • 安全测试中的身份认证与访问控制深度解析
  • Redis 03章——10大数据类型概述
  • doris:异步物化视图概述
  • 基于 Docker 搭建 Elasticsearch + Kibana 环境
  • 演示synchronized锁机制用法的简单Demo
  • 网络工程师 (39)常见广域网技术
  • Typescript 【详解】配置文件 tsconfig.json
  • aws(学习笔记第二十八课) aws eks使用练习(hands on)
  • Rook-ceph(1.92最新版)
  • Flappy Bird开发学习记录
  • 【Linux】详谈 进程控制
  • 机器学习:二分类和多分类
  • 安卓逆向(Bundle)
  • 把 CSV 文件摄入到 Elasticsearch 中 - CSVES
  • PAT乙级真题 — 1084 外观数列(java)
  • 一口井深7米,一只蜗牛从井底往上爬每天爬3米掉下去1米,问几天能爬上井口?
  • CEF132 编译指南 Linux 篇 - 获取 CEF 源代码:源码同步详解(五)
  • 代码随想录算法训练营Day47
  • 网站收录需要多久/网络推广产品公司
  • 编程软件推荐/seo百度发包工具
  • 北海做网站哪家好/百度学术官网入口网页版