Новичок
Профиль
Группа: Участник
Сообщений: 2
Регистрация: 1.12.2010
Репутация: нет Всего: нет
|
Добрый вечер, подскажите ,пожалуйста,что необходимо сисправить ,чтобы данная программа запустилась без ошибок и продолжала работу, т.е. не выводила сразу при запуске сообщение :"The driver is not suitable for this type of microcomputer." Код | PAGE 59,132
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ ;ЫЫ ЫЫ ;ЫЫ K ЫЫ ;ЫЫ ЫЫ ;ЫЫ Created: 4-Mar-95 ЫЫ ;ЫЫ Passes: 5 Analysis Options on: none ЫЫ ;ЫЫ (C) 1992 ЫЫ ;ЫЫ ЫЫ ;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
target EQU 'T3' ; Target assembler: TASM-3.2
include srmacros.inc
; The following equates show data references outside the range of the program.
data_1e equ 417h data_15e equ 0E000h data_16e equ 0FFF5h
;------------------------------------------------------------ seg_a ----
seg_a segment byte public assume cs:seg_a , ds:seg_a
loc_1: db 256 dup (0)
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ ; ; Program Entry Point ; ;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
k proc far
start: jmp loc_12
k endp
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ ; ; External Entry Point ; ;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
int_09h_entry proc far push ax push bx push ds xor ax,ax ; Zero register mov ds,ax in al,60h ; port 60h, keybd scan or sw1 cmp al,2 jb loc_2 ; Jump if below cmp al,5 ja loc_2 ; Jump if above mov bx,data_1e mov al,[bx] and al,0Ch cmp al,0Ch je loc_3 ; Jump if equal loc_2: pushf ; Push flags call dword ptr cs:data_3 jmp short loc_4 db 90h loc_3: in al,61h ; port 61h, 8255 port B, read push ax or al,80h out 61h,al ; port 61h, 8255 B - spkr, etc pop ax out 61h,al ; port 61h, 8255 B - spkr, etc ; al = 0, disable parity mov al,20h ; ' ' out 20h,al ; port 20h, 8259-1 int command ; al = 20h, end of interrupt sti ; Enable interrupts loc_4: pop ds pop bx pop ax iret ; Interrupt return int_09h_entry endp
data_3 dd 00000h
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ ; ; External Entry Point ; ;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
int_1Ch_entry proc far push ax push dx mov al,2 mov dx,3DEh out dx,al ; port 3DEh ??I/O Non-standard pop dx pop ax jmp far ptr $-149h int_1Ch_entry endp
;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ ; ; External Entry Point ; ;ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
int_16h_entry proc far cmp ax,5AA5h jne loc_5 ; Jump if not equal xchg al,ah jmp short loc_ret_11 loc_5: cmp ah,2 jne loc_6 ; Jump if not equal jmp far ptr $-15Ch loc_6: push cx mov cx,ax pushf ; Push flags call dword ptr cs:[15Dh] pushf ; Push flags push bx push ds cmp al,0 je loc_9 ; Jump if equal or ah,ah ; Zero ? jz loc_9 ; Jump if zero cmp al,2Ah ; '*' je loc_7 ; Jump if equal cmp al,0FDh je loc_7 ; Jump if equal cmp ah,66h ; 'f' ja loc_9 ; Jump if above cmp ah,60h ; '`' jb loc_8 ; Jump if below loc_7: xor ah,ah ; Zero register loc_8: cmp al,0B0h jb loc_9 ; Jump if below cmp al,0DFh ja loc_9 ; Jump if above mov bx,offset data_9 add bl,al adc bh,0 sub bx,0B0h mov al,cs:[bx] loc_9: pop ds pop bx or ch,ch ; Zero ? jz loc_10 ; Jump if zero popf ; Pop flags pop cx retf 2 ; Return far int_16h_entry endp
loc_10: popf ; Pop flags pop cx
loc_ret_11: iret ; Interrupt return data_9 db 80h db 81h, 82h, 83h, 84h, 85h, 86h db 87h, 88h, 89h, 8Ah, 8Bh, 8Ch db 8Dh, 8Eh, 8Fh, 90h, 91h, 92h db 93h, 94h, 95h, 96h, 97h, 98h db 99h, 9Ah, 9Bh, 9Ch, 9Dh, 9Eh db 9Fh,0A0h,0A1h,0A2h,0A3h,0A4h db 0A5h,0A6h,0A7h,0A8h,0A9h,0AAh db 0ABh,0ACh,0ADh,0AEh,0AFh loc_12: mov al,2 mov dx,3DEh out dx,al ; port 3DEh ??I/O Non-standard mov si,332h mov ax,cs mov ds,ax mov ax,0F000h mov es,ax mov di,data_15e mov cx,1Ch nop cld ; Clear direction repe cmpsb ; Rep zf=1+cx >0 Cmp [si] to es:[di] jnz loc_13 ; Jump if not zero mov si,offset data_13 mov ax,cs mov ds,ax mov ax,0F000h mov es,ax mov di,data_16e mov cx,8 nop cld ; Clear direction repe cmpsb ; Rep zf=1+cx >0 Cmp [si] to es:[di] jz loc_14 ; Jump if zero loc_13: mov ax,cs mov ds,ax mov dx,offset data_14 ; (' ') mov ah,9 int 21h ; DOS Services ah=function 09h ; display char string at ds:dx jmp short loc_15 loc_14: mov ax,5AA5h int 16h ; ??INT Non-standard interrupt cmp ax,0A55Ah jne loc_16 ; Jump if not equal mov ax,cs mov ds,ax mov dx,offset data_11 ; (' ') mov ah,9 int 21h ; DOS Services ah=function 09h ; display char string at ds:dx loc_15: mov ah,4Ch int 21h ; DOS Services ah=function 4Ch ; terminate with al=return code loc_16: cli ; Disable interrupts mov ax,3516h int 21h ; DOS Services ah=function 35h ; get intrpt vector al in es:bx mov word ptr cs:[15Dh],bx mov word ptr cs:[15Fh],es mov ax,3509h int 21h ; DOS Services ah=function 35h ; get intrpt vector al in es:bx mov word ptr cs:data_3,bx mov word ptr cs:data_3+2,es
locloop_17: mov ax,351Ch int 21h ; DOS Services ah=function 35h ; get intrpt vector al in es:bx mov word ptr cs:[14Ah],bx
locloop_18: mov word ptr cs:[14Ch],es mov ax,cs mov ds,ax mov dx,offset int_16h_entry mov ax,2516h int 21h ; DOS Services ah=function 25h ; set intrpt vector al to ds:dx mov dx,offset int_09h_entry mov ax,2509h int 21h ; DOS Services ah=function 25h ; set intrpt vector al to ds:dx mov dx,offset int_1Ch_entry mov ax,251Ch int 21h ; DOS Services ah=function 25h ; set intrpt vector al to ds:dx sti ; Enable interrupts mov ax,cs mov ds,ax mov dx,offset data_10 ; ('KEDR_IS ') mov ah,9 int 21h ; DOS Services ah=function 09h ; display char string at ds:dx mov dx,1DEh mov cl,4 shr dx,cl ; Shift w/zeros fill add dx,1 mov ax,3100h int 21h ; DOS Services ah=function 31h ; terminate & stay resident ; al=return code,dx=paragraphs data_10 db 'KEDR_IS a driver of alternative c' db 'oding keyboard "ИСКРА 1030"' db '.', 0Ah, 0Dh copyright db '(C) 1992 ' db 0A3h, 2Eh, 20h, 8Bh,0A0h,0A1h db 0AEh,0E0h,0A0h,0E2h,0AEh,0E0h db 0A8h,0EFh, 20h,0A8h,0ADh,0E4h db 0AEh,0E0h,0ACh,0A0h,0E2h,0A8h db 0AAh,0A8h, 20h, 8Eh, 83h, 8Ch db 88h db 2Eh, 20h, 0Ah, 0Dh, 24h data_11 db 'The keyboard driver is already loaded.' db 0Ah, 0Dh, '$' data_12 db 0B8h db 0C1h,0BAh,0C0h,0B0h db ' 01.1990 IBM Compatible' data_13 db '03/31/91' data_14 db 'The driver is not suitable for thi' db 's type of microcomputer.', 0Ah, 0Dh, '$' db 0Dh, 0Ah, 00h, 00h, 00h
seg_a ends
end start
|
|