Use DOS gadgets written in DEBUG a hundred years ago to save the CMOS Data to the executable, or write data from the executable to CMOS. The purpose of the initial writing is to use the machine room (or Internet cafe) to change CMOS :)
Old antiques, accidentally see it, relat, right to save commemorative ...
A
Mov Si, 0082
CMP BY [Si], 52; 'R'
JZ 0120; _Read
CMP BY [Si], 72; 'R'
JZ 0120; _Read
CMP BY [Si], 57; 'W'
JZ 0154; _WRITE
CMP BY [Si], 77; 'W'
JZ 0154; _WRITE
Mov Ah, 09
MOV DX, 017B
Int 21
INT 20
MOV Si, 01d0; _Read:
MOV CX, 0040
XOR Al, Al
OUT 70, Al; _LoopRead:
MOV AH, Al
IN Al, 71
MOV [Si], Al
Mov Al, AH
INC Al
Inc Si
Loop 0128; _LoopRead
MOV AX, 3D01
MOV DX, 0174; 'DC.com'
Int 21
MOV BX, AX
Mov Ah, 40
MOV CX, 0110
MOV DX, 0100
Int 21
Mov Ah, 09
MOV DX, 0194
Int 21
INT 20
MOV Si, 01d0; _Write:
MOV CX, 0040
XOR Al, Al
OUT 70, Al; _LoopWrite:
MOV AH, Al
MOV Al, [Si]
OUT 71, Al
Mov Al, AH
INC Al
Inc Si
Loop 015c; _LoopWrite
Mov Ah, 09
MOV DX, 01AB
Int 21
INT 20
DB 'dc.com', 0
DB 'Message: Unknow Argument! $'
DB 'MESSAGE: Read Complete! $'
DB 'MESSAGE: WRITE COMPLETE! $'
DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
DB 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
RCX
110
N dc.com
W
Qi