Закрывая тему TASM, приведу прогу для управления питанием в PC-3000
Был такой программно-аппаратный комплекс для ремонта винтов.. оочень старый.
Делают вот эти ребата
ACE Laboratory Точнее, делали.. сейчас уже более новые версии в продаже.
А тогда ещё был под ISA.. Тогда я и познакомился с
Эдуардом, и даже пытался копать винты ;)
Кстати, я очень рекомендую его как специалиста..
Если вам нужно отремонтировать винт или поднять инфу, то во всей Уфе не найти лучше!
Я кое-что писал для ремонта и исследования. И это первая прога.
Чтобы по горячим клавишам включать-выключать питание ремонтируемого винта.
Работает только со старой никому не нужной платой.. потому и привожу :)
Это резидент, если кто не понял..
Сначала запускаем прогу, она повисает в памяти и отрабатывает нажатия клавиш.
Если ловит свои клавиши, то подаёт команды на плату - включить/выключить.
Если теперь запустить её же с ключом "-", то действие прекратится,
Память освободится.. и комп вернётся в исходное состояние.
;Coding by Sergaev Andrey aka SAVC 11.11.2002
;
cseg segment
assume cs:cseg,ds:cseg,es:cseg,ss:cseg
org 100h
free_sp equ (offset begin - offset start + 15)/16+16
start:
jmp begin
db 'Power Control For PC-3000 by SAVC',24h
ofs_l dw 0
seg_l dw 0
;Собственно обработчик
int9:
push ax
push dx
pushf
db 2eh,0ffh,1eh ; call far cs:[ofs_l]
dw offset ofs_l
mov ah,1
int 16h
jz int91
or al,al
jnz int91
mov dx,010ah
cmp ah,66h ;Ctrl-F9
jnz int92
mov al,2
out dx,al
xor ah,ah
int 16h
jmp short int91
int92: cmp ah,67h ;Ctrl-F10
jnz int91
mov al,0
out dx,al
xor ah,ah
int 16h
int91: pop dx
pop ax
iret
begin:
cld
xor bx,bx
mov es,bx
mov ax,es:[26h]
mov es,ax
mov di,100h
mov si,di
mov cx,offset ofs_l-100h
repz cmpsb
jnz begin1
mov si,80h
mov ah,[si]
inc si
begin2: or ah,ah
jz begin3
lodsb
cmp al,'-'
jnz begin2
begin4: cli
mov ds,bx
mov ax,es:[di]
mov ds:[24h],ax
mov ax,es:[di+2]
mov ds:[26h],ax
sti
mov ah,49h
int 21h
mov ax,cs
mov ds,ax
mov ah,9
mov dx,offset mes2
int 21h
begin3: mov ax,4c00h
int 21h
begin1: cli
mov es,bx
mov ax,offset int9
xchg es:[24h],ax
mov ofs_l,ax
mov ax,cs
xchg es:[26h],ax
mov seg_l,ax
sti
mov dx,offset mes1
mov ah,9
int 21h
mov dx,free_sp
mov ah,31h
int 21h
mes1 db 10,13,9,'Press Ctrl-F9 for Power On.',10,13,9
db 'Press Ctrl-F10 for Power Off.',10,13,9
db 'Use',9,'power.com -',9,' for uninstall.',10,13,24h
mes2 db 10,13,9,'Programm uninstalled.',10,13,24h
cseg ends
end start
Утиль для DOS
Код для Intel 8086
Компилятор
TASMАрхив всего
здесь