当前位置: 首页 > 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 InternationalAssembling file:   RI.asm
Error messages:    None
Warning messages:  None
Passes:            1
Remaining memory:  408kC:\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 1992Usage:   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 statusx=auxiliary hotkey (default is "X") x equ "1" means need AuxHotkeyyy..=shift status  [CAScas]C: Left Ctrl    A: Left Alt    S: Left Shiftc: Right Ctrl   a: Right Alt   s: Right ShiftExample: "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 RIContact me for RAMinit problems: (01)2561155 Call 1997C:\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 USE16MESG 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 USE16ASSUME CS:CODE,DS:DATABEG:  	MOV    AX,DATAMOV    DS, AXMOV    CX,8PRINT:  MOV    AH,9MOV    DX, OFFSET MESGINT    21HLOOP   PRINTCHECK_LOOP:CMP CX, 10000JG  RESET_CXINC CXJMP CHECK_LOOPRESET_CX:MOV	CX, 0JMP CHECK_LOOPMOV AH,4CHINT 21H            	;BACK TO DOS
CODE ENDS
END  BEG

清除驻留程序TSR

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

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


http://www.mrgr.cn/news/90945.html

相关文章:

  • 【快速入门】Unity 常用组件(功能块)
  • 【异或数列——博弈论】
  • 【大模型】阿里云百炼平台对接DeepSeek-R1大模型使用详解
  • Ubuntu 22.04 Desktop企业级基础配置操作指南
  • 天芒传奇Ⅱ·前传-天芒的使用
  • 基于HTML5 Canvas 和 JavaScript 实现的烟花动画效果
  • UI自动化测试的优缺点?
  • 2025年二级建造师报名流程图解
  • 【Unity Shader编程】之GPU编程前言
  • 【数据结构】(8) 二叉树
  • 把 DeepSeek1.5b 部署在显卡小于4G的电脑上
  • GPU并行计算的深度学习pyTorch环境搭建
  • RAII(Resource Acquisition Is Initialization)机制
  • Kotlin 2.1.0 入门教程(十七)接口
  • DeepSeek预测2025目标检测算法Top 5:谁将主导下一代视觉感知?
  • 多媒体软件安全与授权新范例,用 CodeMeter 实现安全、高效的软件许可管理
  • 机器学习-1:线性回归
  • java处理pgsql的text[]类型数据问题
  • 运维-自动访问系统并截图
  • 「软件设计模式」工厂方法模式 vs 抽象工厂模式